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

Gub*_*ron 39 java linux macos networking android

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

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

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

android中有一个我可以阅读的文件吗?

必须有一种获取此地址的方法,因为它显示在手机的"设置>关于手机>状态"中.

Tob*_*swk 93

迟到的答案,但它可以帮助其他人有同样的"问题".

回答实在是直截了当:

WifiManager wifiMan = (WifiManager) this.getSystemService(
                Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
String macAddr = wifiInf.getMacAddress();
Run Code Online (Sandbox Code Playgroud)

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

  • 只是为了添加一些细节,你必须为androidManifest.xml添加一个适当的权限才能使它工作:<uses-permission android:name ="android.permission.ACCESS_WIFI_STATE"/> (23认同)
  • 没有必要启用wifi来获取MAC地址.我通过wifi关闭它. (2认同)

Com*_*are 22

必须有一种获取此地址的方法,因为它显示在手机的"设置>关于手机>状态"中.

这意味着,如果没有别的,你可以围绕Android开源代码推特,也许使用谷歌代码搜索,找出它从哪里拉出来.

做了一些自己闲逛的话,就会出现它使用getMacAddress()WifiInfo.


Kap*_*aps 6

更新:

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地址的帖子,虽然没有通过如何获得Wi-Fi Mac进行测试
Android Marshmallow中的地址