android8.1获取蓝牙地址,[蓝牙] Android 8.1 获取蓝牙设备地址无效;02:00:00:00:00:00
时间: 2023-06-19 15:08:05 浏览: 167
从Android 6.0开始,Google引入了一项安全功能,即对于非系统应用程序,无法直接访问设备的MAC地址。因此,在Android 8.1及更高版本中,获取蓝牙设备MAC地址的方法已经失效。
不过,您可以通过BluetoothAdapter对象的getAddress()方法来获取蓝牙设备的地址。但是,这个方法只能在Android 6.0及以下版本中使用。在Android 7.0及以上版本中,该方法将返回固定的值“02:00:00:00:00:00”。
如需在Android 8.1及更高版本中获取蓝牙设备地址,您可以通过以下方法:
1. 在AndroidManifest.xml文件中添加权限:
```
<uses-permission android:name="android.permission.BLUETOOTH"/>
```
2. 通过BluetoothAdapter.getDefaultAdapter()方法获取BluetoothAdapter对象。
3. 通过BluetoothAdapter对象的getBluetoothLeAdvertiser()方法获取BluetoothLeAdvertiser对象。
4. 通过BluetoothLeAdvertiser对象的getOwnAddress()方法获取自身蓝牙地址。
示例代码如下:
```
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothLeAdvertiser bluetoothLeAdvertiser = bluetoothAdapter.getBluetoothLeAdvertiser();
String macAddress = bluetoothLeAdvertiser.getOwnAddress();
```
请注意,该方法仅适用于支持BLE功能的设备。对于不支持BLE功能的设备,您可以考虑使用其他方法来获取蓝牙设备地址。
阅读全文