问题描述:
按照下面步骤增加了蓝牙权限,但是没有自动弹窗申请权限,并且自动拒绝,在检查权限授权校验时不通过
Android11之后增加了两个蓝牙相关权限
<!-- Android 31 之后新增了两个杈限 -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
这两个权限是运行时权限,需要动态申请,app拥有这两个权限才能正常连接蓝牙设备进行传输。
public String[] requestPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// Android 版本大于等于 Android12 时
// 只包括蓝牙这部分的权限,其余的需要什么权限自己添加
return new String[]{
...
Manifest.permission.BLUETOOTH,
Manifest.permission.BLUETOOTH_ADMIN,
Manifest.permission.BLUETOOTH_SCAN,
Manifest.permission.BLUETOOTH_CONNECT,
...
};
}
只有当(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)时,才会弹窗申请新加的两个权限,所以代码中需要增加一下Android版本的判断。