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

Android Permissions中的buttonNegative和buttonNeutral做什么

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?