如何获取WiFi网络接口的MAC地址?
看来机器人的java.net.NetworkInterface执行不具有
的byte [] getHardwareAddress()方法 http://developer.android.com/reference/java/net/NetworkInterface.html如何获取WiFi网络接口的MAC地址?
我发现人们试图用没有明确的答案做这几个论坛,我需要得到一个有点跨设备的UUID,所以我不能依靠电话号码或ANDROID_ID(可覆盖,我认为这取决于有一个谷歌帐户的用户) http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID
在Linux可以使用ifconfig或从/ proc/net/arp读取,您可以轻松获取硬件地址。
在android中有一个文件可以阅读吗?
因为手机的“设置>关于手机>状态”中显示了该地址,所以必须有一种方法。
必须有一种方式来获得这种 地址,因为它在 显示真实“设置>关于手机>状态”的 电话。
这意味着,如果没有别的东西,你可以绕过Android开源代码,也许使用谷歌代码搜索,找出它从哪里来。
做了一些自己的鞭打,它会出现它使用getMacAddress()
从WifiInfo
。
该代码可以在这里找到 https://开头github上。com/android/platform_packages_apps_settings/blob/master/src/com/android/settings/wifi/AdvancedWifiSettings.java#L253-L265 – fernandohur 2013-12-11 15:43:23
迟到的答案,但它可以帮助其他人有相同的“问题”。
的answer真的是直截了当:
WifiManager wifiMan = (WifiManager) this.getSystemService(
Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
String macAddr = wifiInf.getMacAddress();
上面的代码将让你的设备的MAC地址,记得有抓住地址时,带WiFi功能。这段代码应该在你的Activity中使用。
只需添加一些细节,您将不得不添加一个适当的权限给androidManifest.xml以获取它工作: – 2011-02-27 13:15:16
不需要有wifi启用获得MAC地址。我把它与无线网关关联。 – jzafrilla 2013-09-19 11:31:16
UPDATE:
开始的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地址,没有测试它虽然
How to get Wi-Fi Mac address in Android Marshmallow
添加以下权限。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
WifiManager在onCreate中初始化。
WifiManager wifiMgr = (WifiManager) getContext().getSystemService(context.WIFI_SERVICE);
使用以下功能。
public void WI-FI_MAC() {
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();
}
我张贴在这里工作的解决方案 https://stackoverflow.com/a/47789324/5330408 – 2017-12-13 10:32:09