安卓12版本蓝牙兼容性问题

430 阅读1分钟

调试发现错误信息为。

errMsg":"startBluetoothDevicesDiscovery:fail android.permission.BLUETOOTH_SCANpermission denied","errCode":10000,"code":10000

已知尝试的办法不行。在源码模式手动添加权限重新打包没有生效,设置了targeSdktVersion=31也不行。

判断需要在代码中动态获取这种权限。

	//获取蓝牙权限
			getAuth() {
				uni.getSystemInfo({
					success: function(data) {
						// console.log(data);  
						var permissionArr;
						if (data.osAndroidAPILevel < 31) {
							permissionArr = ["android.permission.ACCESS_FINE_LOCATION"];
						} else {
							permissionArr = ["android.permission.ACCESS_FINE_LOCATION",
								"android.permission.BLUETOOTH_SCAN", "android.permission.BLUETOOTH_CONNECT"
							]; //,"android.permission.BLUETOOTH_ADVERTISE" 发现蓝牙权限暂时不需要  
						}
						// console.log("ddd")
						plus.android.requestPermissions(
						permissionArr); // 内部封装了plus.android.requestPermissions  
					},
					fail: function() {
						uni.showModal({
							title: "信息获取失败",
							content: "信息获取失败,请返回主页面",
							confirmText: "返回",
							success: function(data) {
								uni.navigateBack({
									delta: 0
								})
							}
						})
					}
				})
			}