如何解决Android Permissions中的buttonNegative和buttonNeutral做什么
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,{
title,message,buttonNeutral: "Ask Me Later",buttonNegative:"Cancel",buttonPositive: "OK"
});
单击buttonNegative和buttonNeutral按钮可以立即解决诺言。相反,它不能解决promise,而是进一步从本机对话框中请求权限。
这是预期的行为吗?不确定这两个按钮是做什么用的?
令人惊讶的是,Official document也没有对这两个按钮做太多解释。
解决方法
我在运行 Android 9 的设备上运行了官方文档中的示例。按下“请求权限”按钮后,我确实得到了一个包含三个按钮的自定义弹出窗口。但实际上没有一个按钮做任何事情。按其中任意一个,会弹出一个新的系统范围的警报,询问我是授予、拒绝还是不再询问所请求的权限。
如果按下“授予”或“不再询问”,则进一步按下“请求权限”按钮不会显示弹出窗口。并且请求总是返回“granted”或“never_ask_again”。如果拒绝被按下,我们回到第一段中提到的情况。
从这种行为来看,自定义弹出窗口的目的,至少在 Android 9 上,只是出于基本原理。该按钮(特别是肯定按钮)允许用户确认他/她知道许可请求背后的原因。然而,实际的权限授予/拒绝应由系统范围的弹出窗口处理。
注意:您必须在 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
中添加 AndroidMaanifest.xml
以允许请求权限。如果没有,请求将始终返回“never_ask_again”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。