如何获取WiFinetworking接口的MAC地址?

看来android.net的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中读取,你可以很容易地获得硬件地址。

在Android中有一个文件,我可以阅读?

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

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

也就是说,如果没有别的办法,可以使用谷歌代码search(Google Code Search)来推测Android开源代码,找出它从哪里来的。

做了一些getMacAddress() ,它会出现它使用getMacAddress()

迟到的答案,但它可以帮助别人有同样的“问题”。

答案非常简单:

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

上面的代码会得到你的设备的MAC地址,记得抓住地址时启用wifi。 这个代码片段应该在你的Activity中使用。

更新:

Android 6.0开始,上面的API将为您提供所有设备的固定MAC地址,即02:00:00:00:00:00 。 详情请参阅下文
http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html
发现另一篇声称在6.0中查找MAC地址的post,但没有经过testing
如何在Android Marshmallow中获得Wi-Fi Mac地址