Android Q 获取 Wifi MAC Address 返回 02:00:00:00:00:00 问题

最近在 Android Q 中需要获取 Wifi MAC Address,使用 wifiInfo.getMacAddress() 接口,发现获取到的值为 02:00:00:00:00:00,与真实值对不上。代码大概如下:

        ...
        WifiManager mWifiManager = (WifiManager) getActivity().getSystemService(WIFI_SERVICE);
        WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
        String macAddress = wifiInfo.getMacAddress();
        ...

 

搜索网上提供的各种方法试验均无效,最终通过 WifiManager.getFactoryMacAddresses() 接口可以获取到真实的 MAC Address,具体使用方法可以参考如下:

        ...
        final String[] macAddresses = mWifiManager.getFactoryMacAddresses();
        String macAddress = null;
        if (macAddresses != null && macAddresses.length > 0) {
            macAddress = macAddresses[0];
        }

        if (TextUtils.isEmpty(macAddress)) {
            mWifiMacAddress.setSummary(R.string.status_unavailable);
        } else {
            mWifiMacAddress.setSummary(macAddress);
        }
        ...

https://www.androidos.net.cn/android/10.0.0_r6/raw/frameworks/base/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java


版权声明:本文为shenfengchen原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。