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

Dan*_*elG 15 android privacy

希望在Android M上获取Wifi MAC地址的Android开发人员可能遇到了以下问题:获取MAC地址的标准Android OS API返回虚假MAC地址(02:00:00:00:00:00)而不是真实MAC地址值.

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

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

final String wifiMACaddress = wifiManager.getConnectionInfo().getMacAddress();
Run Code Online (Sandbox Code Playgroud)

Inf*_*0re 29

在Android M中,MAC地址对于WiFi和蓝牙来说"不可读".您可以使用(Android M预览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 "";
}
Run Code Online (Sandbox Code Playgroud)

(从这篇文章得到这个代码)

不知怎的,我听说从"/ sys/class/net /"+ networkInterfaceName +"/ address"读取文件; 自Android N发布以来不会有效,三星等不同厂商之间也可​​能存在差异

希望此代码仍可在以后的Android版本中使用.

编辑:也在Android 6发布这个工作

  • 没有解决方案.要访问 - >附近外部设备的硬件标识符< - 您的应用现在必须具有ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION权限.我不确定检索networkInterfaces需要什么权限.但要访问智能手机WiFi-MAC-Address,这是现在唯一的方法,它将与下一个版本的android之一 (2认同)

Dan*_*elG 7

解决!

仍然可以从路径中获取MAC地址:

"/sys/class/net/" + networkInterfaceName + "/address";
Run Code Online (Sandbox Code Playgroud)

只需执行文件读取或该文件的猫将显示Wifi MAC地址.

网络接口名称通常与"wlan0"或"eth1"一致

  • 可能需要注意的是,在某些设备上,它是受读保护的,因此您可能需要root用户。 (2认同)

归档时间:

查看次数:

15459 次

最近记录:

8 年,6 月 前