UNIAPP调用本地配对蓝牙功能 在客户手机升级到 Android12以上系统时 无法正常调用买,需要2步来适配:
1.在 "android" => "permissions" 下添加 对应权限
"<uses-permission android:name=\"android.permission.BLUETOOTH_CONNECT\"/>"
2.在调用蓝牙设备之前 检查唤起权限对话框
checkPermission(["android.permission.BLUETOOTH_CONNECT"],"蓝牙",function(){
console.log('checkPermission BLUETOOTH_CONNECT OK!');
});
function checkPermission(permissions, permissionName, success) {
plus.android.requestPermissions(permissions, function(e) {
if (e.deniedAlways.length > 0) { //权限被永久拒绝
// 弹出提示框解释为何需要读写手机储存权限,引导用户打开设置页面开启
uni.showModal({
title: permissionName + '权限',
content: '您可能拒绝了' + permissionName + '权限或您的设备无需设置权限',
success: function(res) {
if (res.confirm) {
// console.log('用户点击确定');
} else if (res.cancel) {
// console.log('用户点击取消');
}
}
});
}
if (e.deniedPresent.length > 0) { //权限被临时拒绝
plus.android.requestPermissions(permissions)
}
if (e.granted.length > 0) { //权限被允许
if (success) {
success();
}
}
}, function(e) {
console.log('checkPermission error:', e);
});
}