我已经看到通过标准方法找到自己的MAC地址(Wifi或BT),比如这个 -
WifiManager wifiManager = (WifiManager)
getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String macAddress = wInfo.getMacAddress();
自Android M以来已被弃用。
给出的理由是用户数据的安全性。
但是,使用NetworkInterface,我们仍然可以获得MAC地址 -
Enumeration<NetworkInterface> all = NetworkInterface.getNetworkInterfaces();
while(all.hasMoreElements()) {
NetworkInterface nif = all.nextElement();
if (nif.getName().equalsIgnoreCase("wlan0"))
{
byte[] macBytes = nif.getHardwareAddress();
//do stuff here
}
}
是否存在可能失败的情况(当前版本以及即将推出的Android版本)?
答案 0 :(得分:0)
在我们的代码库中,我们使用两种方法来检索MAC地址。关于某些设备在Wi-Fi关闭时没有返回MAC地址的评论,所以如果nif.getHardwareAddress(),还有默认MAC地址的后备。返回null。
如果它为null我们将其设置为Android 6.0默认MAC地址:“02:00:00:00:00:00”