微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

看不到总是允许在android位置权限中

如何解决看不到总是允许在android位置权限中

我一直在尝试使用 react native ble 库 (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");
                        }
                    });
                }
            });
        }

在我的设备上,弹出窗口要求我进行授权,只有两个选择:

  • 仅在应用程序运行时
  • 拒绝

但在他们的例子中,我有另外两个选择,并且“总是授权”

出于某种原因,如果我不总是批准,我将无法扫描外围设备(通过进入应用程序的设置,我可以将其更改为始终用于我的应用程序)。

我的 android manifest (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 11,所以不能在弹出窗口中直接请求。 您必须向您的用户指示如何更改权限 来源:https://developer.android.com/training/location/permissions

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。