gpt4 book ai didi

android - 如何在 Android Marshmallow 及更高版本中获取丢失的 Wifi MAC 地址?

转载 作者:IT老高 更新时间:2023-10-28 23:39:15 28 4
gpt4 key购买 nike

希望在 Android M 上获取 Wifi MAC 地址的 Android 开发人员可能遇到了一个问题,即用于获取 MAC 地址的标准 Android OS API 返回一个虚假的 MAC 地址 (02:00:00:00:00:00)真正的值(value)。

获取Wifi MAC地址的正常方法如下:

final WifiManager wifiManager = (WifiManager) getApplication().getApplicationContext().getSystemService(Context.WIFI_SERVICE);

final String wifiMACaddress = wifiManager.getConnectionInfo().getMacAddress();

最佳答案

在 Android M 中,MAC 地址对于 WiFi 和蓝牙将是“不可读的”。您可以通过(Android M Preview 2)获取 WiFi MACAddress:

public static String getWifiMacAddress() {
try {
String interfaceName = "wlan0";
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
if (!intf.getName().equalsIgnoreCase(interfaceName)){
continue;
}

byte[] mac = intf.getHardwareAddress();
if (mac==null){
return "";
}

StringBuilder buf = new StringBuilder();
for (byte aMac : mac) {
buf.append(String.format("%02X:", aMac));
}
if (buf.length()>0) {
buf.deleteCharAt(buf.length() - 1);
}
return buf.toString();
}
} catch (Exception ex) { } // for now eat exceptions
return "";
}

(从 Post 获得此代码)

不知何故,我听说从 "/sys/class/net/"+ networkInterfaceName + "/address"读取文件;将无法使用,因为 Android N 将发布,并且三星等不同制造商之间可能存在差异。

希望此代码在以后的 Android 版本中仍然有效。

编辑:在 Android 6 版本中也可以使用

关于android - 如何在 Android Marshmallow 及更高版本中获取丢失的 Wifi MAC 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329733/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com