当前位置: 首页 > 知识库问答 >
问题:

Android M-无论如何要知道用户是否选择了不再显示“授予权限”对话框?

澹台新知
2023-03-14

如果all调用ActivityCompat.RequestPermissions(),则OS显示一个带有Deny或Permissions按钮的对话框。还有一个“永不再次显示这个”勾选框。

但是,我无法让应用程序知道用户是否勾选了这个框--在onRequestPermissionsResult()中,如果用户单击Deny,以及如果用户在单击Deny之前勾选了这个勾选框,那么grantResults参数是PERMISSION_DENIED。那么,是否有一个应用程序可以发现用户是否不想再次看到该对话框?

共有1个答案

何长恨
2023-03-14

您可以使用ActivityCompat.ShouldShowRequestPermissionRationale()-在少数情况下它将返回false:

  • 您以前从未请求过此权限
  • 用户已选中“永不重复”复选框
  • 权限已被策略禁用(例如,在工作情况下)

通过将此与共享首选项相结合,以存储您曾经请求的权限,您可以有效地确定当您调用requestPermissions()时,他们是否会实际看到该对话框。

 类似资料:
  • 我正在尝试制作一个使用数据库的java应用程序。我已经下载了db2并创建了一个用户'student'。我的程序中有以下几行: 显然,我几乎不知道我在做什么,我不知道如何给予“学生”必要的特权。也就是说,我不知道什么用户可以给他特权,因为我从来没有创建过另一个用户。我看到有人提到过'db2admin'(我使用的是windows),但我不知道该如何处理这段信息。我不知道如何检查现有用户,也不知道对db

  • 问题内容: 尝试写这个: 找不到执行此简单任务的当前方法。 注意:即使需要其他方法,iOS7也应该可以使用 问题答案: 您可以使用以下代码执行相同的操作: 注意: 确保在构建阶段的“链接二进制”部分中添加框架 您应该在课堂上写一些用于导入的内容 SWIFT 3 斯威夫特4

  • 问题内容: 这是使用Jenkins运行ios-sim的后续活动-当通过ssh(而不是通过ssh)运行Jenkins从站时,我需要一种方法来使这项工作有效 因此,一般而言,如果我使用ssh登录到Mac,如何访问显示器? 问题答案: 我认为您必须使用与ssh连接一起使用的用户登录Mac(Jenkins从站)。登录后,您运行的作业应该可以访问显示。 我们使用“ 通过SSH在Unix计算机上启动从属代理

  • 问题内容: 我在注册后使用以下方法进行程序化登录 用户已通过身份验证,但始终具有ROLE_ANONYMOUS我不知道为什么?有任何想法吗 ? 问题答案: 这种现象看起来很奇怪。Javi建议手动将安全性上下文持久化到会话中,但是应该由Spring Security的自动完成。 一个可能的原因,我可以想像是在你的登记处理的页面。 禁用指定URL的所有安全过滤器。如你所见,它可能会干扰Spring Se

  • 当弹出权限对话框时,它会询问我是否要允许或拒绝某个权限。问题是,当我允许或拒绝时,动作不会执行。我如何知道他是否允许,以便我可以在接受时执行操作? 我试过: 但它没有执行,因为“为时已晚”

  • 我在Nexus 6上安装了AndroidMarshmallow。我正在尝试解决以下问题: 如果用户在显示通知时尝试开通权限,则会显示"屏幕覆盖检测到"消息,请求权限对话框会消失-当然应用程序不会获得请求的权限。(检查屏幕截图) 我试图通过添加"DRAW OVER OtherAPPS"权限来解决这个问题-android.permission.SYSTEM_ALERT_WINDOW清单,但没有运气。