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);
	});
}
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐