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

如何知道用户在调用requestPermissions之前勾选“Never ask Again”

江阳夏
2023-03-14

我想知道,在调用requestpermissions之前,如何知道用户检查“Never ask Again”。

我已经查看了Android M-检查运行时权限-如何确定用户是否选中了“不再问一遍”?但还不能得到妥善的解决办法。

在此之前,请允许我解释一下我的动机。

我有以下反馈对话表单。

当用户显式地勾选回复我时,如果权限尚未授予,我将执行requestpermissions。有三种可能的结果。

则不会显示任何对话框。requestpermissions将永远不会弹出任何对话框。我需要代表用户取消勾选该复选框,因为OnRequestPermissionsResult会告诉我权限被拒绝。

第三种结果会产生糟糕的用户体验。当用户勾选复选框时,它将立即变为取消勾选。

我想隐藏回复我之前,使反馈表可见。要做到这一点,我需要知道用户是否已经勾选了“Never ask Again”。

ShouldShowRequestPermissionRationale帮助不大。因为,ShouldShowRequestPermissionRationale将在2种情况下返回false

    null

我找不到区分两者的方法。

共有1个答案

田兴旺
2023-03-14

请求权限时,将布尔共享首选项另存为true。然后,您可以检查该值,以了解是否已经请求了权限,并了解ShouldShowRequestPermissionRationale()是否返回false,因为您以前从未请求过,或者因为他们说不再请求,或者因为设备策略禁用了权限。

 类似资料:
  • 我想知道,在调用之前,如何知道用户检查“Never ask Again”。 我已经通过了Android M-检查运行时权限-如何确定用户是否选中了“永远不要再问”?但还无法得到妥善的解决方案。 在此之前,请允许我解释一下我的动机。 null 我找不到区分两者的方法。

  • 我想阻止用户在没有授予位置访问权限的情况下进入屏幕。 因此,我将权限请求用作名为requestLocation()的函数,该函数在onResume()中调用。 requestLocation()内部 ->另一个按钮有助于退出应用程序。 当在onRequestPermissionsResult()中标记deny或grant时,将再次执行requestLocation()。 但在选中“永不再次显示”并

  • el-table有一个筛选功能,筛选和重置都没有问题;但是表格上面还有单独写的查询功能,现在的业务要求是点击上面的查询按钮,可以获取到筛选那儿都勾选了哪些,去做查询,目前不清楚如何获取到勾选的数据。 因为只有点击了筛选或重置才会触发事件,了解到勾选了哪些,现在触发查询在另外一个地方,不知道应该怎么办了 希望获取到勾选的数据。

  • 问题内容: 现在,我使用一个静态布尔值来告诉初始化何时发生。有没有更简单的方法知道我已经调用了initialize? 谢谢!!! 解决了!!!!非常感谢您的评论。您需要在扩展应用程序的类中初始化解析,然后将其作为应用程序(而不是其他活动)添加到清单文件中。 :) 这是我使用Parse的课程: 这是我的android清单文件 问题答案: 创建一个应用程序类,然后在onCreate中初始化解析。 在此

  • 问题内容: 我有一个小小的Jenkins VM,如何知道Jenkins的用户身份运行?我怀疑是Tomcat。 问题答案: 我会用它来获取进程的uid,并在/ etc / passwd中使用grep

  • 问题内容: 我已经阅读了两天的信息和样本,但不确定此后是否完成了所有身份验证过程。 我怎么知道我是否已登录,例如,我将有一个带有登录或注销按钮的导航栏,下面是否有一些变量,如代码? 问题答案: 如果用户已登录,则将为中的每个请求创建一个对象,您可以检查任何中间件是否存在: 您可以为此创建简单的中间件,该中间件将检查用户是否已登录,如果没有,则将重定向到页面: 并使用它: