如何获取WiFi网络接口的MAC地址?

2022-09-01 02:15:03

似乎android的java.net.NetworkInterface实现没有
byte[] getHardwareAddress()方法 http://developer.android.com/reference/java/net/NetworkInterface.html

我发现有几个论坛的人试图这样做,但没有明确的答案,我需要得到一个有点跨设备的UUID,所以我不能依赖电话号码或ANDROID_ID(可以覆盖,我认为这取决于用户拥有谷歌帐户)http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

在 linux 中,您可以使用 ifconfig 或从 /proc/net/arp 读取,并且可以轻松获取硬件地址。

安卓系统中是否有我可以读取的文件?

必须有一种方法可以获取此地址,因为它显示在手机的“设置>关于电话>状态”中。


答案 1

迟到的答案,但它可以帮助其他人解决同样的“问题”。

答案非常简单:

WifiManager wifiMan = (WifiManager) this.getSystemService(
                Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
String macAddr = wifiInf.getMacAddress();

上面的代码将为您提供设备的MAC地址,请记住在抓取地址时启用wifi。应在您的活动中使用此代码段。


答案 2

必须有一种方法可以获取此地址,因为它显示在手机的“设置>关于电话>状态”中。

这意味着,如果没有别的,你可以绕过Android开源代码,也许使用Google Code Search,找出它从哪里提取的。

我自己做了一些推杆,看起来它正在使用.getMacAddress()WifiInfo