最近在 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.