首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android有什么方法可以知道用户是否选择再也不看授予权限对话框了?

Android有什么方法可以知道用户是否选择再也不看授予权限对话框了?
EN

Stack Overflow用户
提问于 2015-10-19 21:42:54
回答 2查看 559关注 0票数 1

如果一个应用程序调用ActivityCompat.requestPermissions(.),那么操作系统就会显示一个带有拒绝和允许按钮的对话框。还有一个“永远不要再显示这个”的勾选框。

然而,我不可能看到应用程序知道用户是否已经勾选了这个框。在onRequestPermissionsResult(.)中,如果用户单击“拒绝”,则grantResults参数为“拒不”,如果用户在单击“拒绝”之前单击勾选框,则为拒不

那么,是否有一个应用程序可以找出用户是否不想再次看到该对话框?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-19 21:57:08

您可以使用shouldShowRequestPermissionRationale() --在一些情况下,它将返回false

  • 你以前从没请求过许可
  • 用户已选中“永不再次”复选框。
  • 许可已被策略禁用(例如,在工作情况下)。

通过将它与共享的首选项结合起来,如果您请求了许可,就可以有效地确定当您调用requestPermissions()时,他们是否会看到对话框。

票数 4
EN

Stack Overflow用户

发布于 2022-09-23 11:13:33

正如伊恩湖所暗示的(这里),我们可以使用持久存储(例如共享首选项)作为一种启发式,以确定操作系统何时会忽略对requestPermissions()的调用。

在我看来,在持久存储中保存这个布尔值的点是用户点击弹出的“请求权限基本原理”中的正按钮,从而触发对requestPermissions()的第二次调用。

随后,如果shouldShowRequestPermissionRationale()返回false,并且持久存储中的布尔值返回true,那么我们应该将用户定向到Settings应用程序,而不是对requestPermissions()方法进行第三次调用。

有关上述内容的具体示例,请参阅我为演示此解决方案而设置的这个小应用程序

以上所述,Android API不允许我们对操作系统提出一个非常简单的问题,这是一个巨大的耻辱:“用户是否永久拒绝了许可?”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33224432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档