【发布时间】:2021-04-14 09:08:36
【问题描述】:
我一直在尝试使用 react native ble librairie (react-native-ble-manager)。为了使用它,用户必须允许位置权限(如文档 android.permission.ACCESS_COARSE_LOCATION 和 android.permission.ACCESS_FINE_LOCATION 如果 android API >= 29. 我要求将自动化作为他们的示例: (PermissionsAndroid 来自 react-native 库):
if (Platform.OS === 'android' && Platform.Version >= 23) {
PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION).then((result) => {
if (result) {
console.log("Permission is OK");
} else {
PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION).then((result) => {
if (result) {
console.log("User accept");
} else {
console.log("User refuse");
}
});
}
});
}
在我的设备上,弹出窗口询问我是否只有两个选择:
- 仅当应用程序运行时
- 拒绝
但在他们的例子中,我有 3 个选择,另外两个“总是授权”
由于某种原因,如果我不总是批准,我将无法扫描外围设备(我已经能够通过进入它的设置将我的应用程序更改为始终)。
我的 android 清单 (android/app/src/main) 的一部分(如您所见,我有 background_location)
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
我确定我遗漏了一个明显的东西,但我看不到什么.. 提前谢谢你:)
【问题讨论】:
标签: android react-native bluetooth bluetooth-lowenergy android-permissions