大佬们问一下 ,为什么我打包的uniapp app 会自动开启附近的设备权限 是在安卓12+版本的安卓手机上面 HB的版本是5.05
我的manifest.json是这样的
"modules" : {
"Bluetooth" : {},
"Maps" : {
"provider" : "amap"
}
},
"permissions" : [
// 基础网络权限
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
// 蓝牙权限(Android 12+)
"<uses-permission android:name=\"android.permission.BLUETOOTH_SCAN\" android:usesPermissionFlags=\"neverForLocation\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_CONNECT\"/>",
// 位置权限(Android 11及以下蓝牙扫描需要)
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
// 保持设备唤醒(蓝牙连接稳定性需要)
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
// 相机权限
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
// 相机硬件特性
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
]
我这么声明的话 打包报错BLUETOOTH_SCAN被重复声明 不声明的情况使用Bluetooth模块自动导入的情况下如何区分是安卓11- 和 安卓12+呢
下面这是我请求的方法
isNearbyDevicesPermissionGranted() {
const permissions = [
"android.permission.BLUETOOTH_SCAN",
"android.permission.BLUETOOTH_CONNECT"
];
plus.android.requestPermissions(permissions, (e) => {
if (e.deniedAlways.length > 0) {
console.log('永久拒绝');
} else if (e.deniedPresent.length > 0) {
console.log('临时拒绝');
} else {
console.log('同意');
}
console.log('e', e);
});
},
我进入的时候弹出是否允许附近的设备 我点击禁止且不再询问的时候
{
"granted": [
"android.permission.BLUETOOTH_SCAN",
"android.permission.BLUETOOTH_CONNECT"
],
"deniedPresent": [],
"deniedAlways": []
}给我打印的是这样的 为什么呢 我拒绝了不应该在deniedAlways里面吗 为什么不会刷新呢 无论是拒绝 还是允许 都是在granted里面 我如何判断用户是开启了还是拒绝了呢