在 android 位置权限中始终看不到允许

Not seeing always allow in android location permission

我一直在尝试使用 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"/>

我确定我错过了一个明显的东西,但我看不到什么.. 提前谢谢你:)

对于那些有同样问题的人:我的 phone 有 android 11 所以不能直接在弹出窗口中请求。 您必须向您的用户指示如何更改权限 资料来源:https://developer.android.com/training/location/permissions