Java BluetoothAdapter getAddress()返回02:00:00:00:00:00

Java BluetoothAdapter getAddress()返回02:00:00:00:00:00,java,android,bluetooth,mac-address,Java,Android,Bluetooth,Mac Address,我尝试返回设备的Bluetooth mac地址,但此地址无效,并返回此地址:02:00:00:00:00 -我使用的是API级别28 -我可以在android系统设置中获取蓝牙mac地址,但不能在应用程序中以编程方式获取。 -我可以通过编程方式从其他设备获取此设备的mac地址 我所理解的是,访问mac地址只适用于系统应用程序,但如果这是真的,为什么其他设备获得我的mac地址而不是我 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAd

我尝试返回设备的Bluetooth mac地址,但此地址无效,并返回此地址:02:00:00:00:00

-我使用的是API级别28
-我可以在android系统设置中获取蓝牙mac地址,但不能在应用程序中以编程方式获取。
-我可以通过编程方式从其他设备获取此设备的mac地址

我所理解的是,访问mac地址只适用于系统应用程序,但如果这是真的,为什么其他设备获得我的mac地址而不是我

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
test.setText(adapter.getAdress());
我尝试了许多权限,但仍然存在相同的问题

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
<uses-permission android:name="android.permission.INTERNET" />

自Android 6以来,棉花糖应用程序不再能够访问蓝牙硬件MAC地址。这一改变是因为许多应用程序滥用该地址来识别和跟踪智能手机。为了避免现有应用被破坏,getter方法仍然存在,但它返回一个虚拟地址。有关详细信息,请参阅Android官方发行说明中的相应说明

但MAC地址对其他设备的可见性如何

  • 蓝牙低能耗(LE)不使用硬件MAC地址进行通信。它使用它的随机变体(参见 详细信息)。由于Bluetooth LE不会停止在后台扫描附近的设备,即使用户明确禁用Bluetooth此功能 相当可观;-)

  • Bluetooth classic不会随机化MAC地址。但与蓝牙相比,用户至少可以轻松地完全禁用蓝牙


但我发现我在设备中找到的蓝牙mac地址(系统>关于手机>状态>蓝牙地址)与其他人发现的相同!MAC地址随机化是蓝牙LE的一个特点。I您应该使用经典蓝牙,地址不会随机化: