targetSdkVersion为29,兼容android14获取已配对蓝牙列表
时间: 2024-09-14 18:03:32 浏览: 78
在Android中,`targetSdkVersion`为29意味着您的应用的目标API级别是Android 10(API 29)。然而,从Android 11(API 30)开始,设备不再显示蓝牙设备列表给所有用户,除非它们被授予读取设备权限。对于Android 10及之前的版本,你可以通过BluetoothAdapter API访问蓝牙设备。
为了在API 29下获取已配对的蓝牙设备列表,您可以按照以下步骤操作:
1. 首先,在`AndroidManifest.xml`文件中添加蓝牙权限:
```xml
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
```
2. 创建一个 BluetoothAdapter 的实例:
```java
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
```
3. 检查蓝牙是否启用和可用:
```java
if (adapter != null && adapter.isEnabled()) {
// 接下来获取配对过的设备列表
}
else {
// 蓝牙未开启或不可用,处理相应情况
}
```
4. 获取配对过的蓝牙设备列表:
```java
List<BluetoothDevice> pairedDevices = adapter.getBondedDevices();
for (BluetoothDevice device : pairedDevices) {
// 对于每个配对的设备,可以进一步操作,如获取名称、地址等
}
```
请注意,这些代码适用于Android 9(API 28)及以上版本,因为`getBondedDevices()`方法在更早版本就已经存在。如果需要支持更低版本的设备,可能需要检查并适配各个API级别的差异。
阅读全文