WifiInfo.getMacAddress()在Android 6.0设备中返回02:00:00:00:00:00

时间:2016-02-01 08:03:57

标签: android

我了解到自Android 6.0以来:

  

Android删除了对设备本地硬件的编程访问权限   使用Wi-Fi和蓝牙API的应用程序的标识符。该
  WifiInfo.getMacAddress()和BluetoothAdapter.getAddress()
  方法现在返回一个常量值02:00:00:00:00:00。

但是,我感到困惑的是,当我的 targetSdkVersion 低于23时,它仍然会返回android 6.0设备中的常量。在我看来,我认为它应该返回一个唯一的硬件标识符,因为应用程序向前兼容性。 Whay没有系统启用任何兼容性行为? 这是我的uses-sdk:

 android:minSdkVersion="8"
 android:targetSdkVersion="22"

这是我的方法:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();

谢谢。原谅我的英语不好。

1 个答案:

答案 0 :(得分:1)

  

为什么系统没有启用任何兼容性行为?

为了保护数据,我们无权享受此类向前兼容性。你的应用还在运行,对吧?所以它是向前兼容的。但即使它伤害了某人的合法目的,也必须解决安全漏洞。

发送一个常量值02:00:00:00:00:00是一种兼容性行为,否则他们只会返回null

相关问题