在 AndroidManifest.xml 文件中添加蓝牙权限声明,代码示例如下:
同时,确保在 Android 6.0 及以上版本的设备上,还需要动态请求蓝牙权限,代码示例如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// 检查是否已经获取了蓝牙权限
if (checkSelfPermission(Manifest.permission.BLUETOOTH) != PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.BLUETOOTH_ADMIN) != PackageManager.PERMISSION_GRANTED) {
// 如果没有蓝牙权限,则请求权限
requestPermissions(new String[]{Manifest.permission.BLUETOOTH,Manifest.permission.BLUETOOTH_ADMIN}, PERMISSION_BLUETOOTH);
}
}
其中,PERMISSION_BLUETOOTH 是自定义的权限请求码。
在需要使用蓝牙的意图中,需要先检查蓝牙权限是否已经被授予,例如:
if (checkSelfPermission(Manifest.permission.BLUETOOTH) != PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.BLUETOOTH_ADMIN) != PackageManager.PERMISSION_GRANTED) {
// 如果没有蓝牙权限,则不执行意图
return;
}
// 如果已经有蓝牙权限,则执行意图
startActivity(myBluetoothIntent);
通过以上方式添加蓝牙权限声明并动态请求蓝牙权限,即可解决 Android Studio 中某些意图需要蓝牙权限但无权限的问题。