Android M - 无论如何要知道用户是否曾选择永远不再显示授权权限对话框?

时间:2015-10-19 21:42:54

标签: android android-permissions

如果all调用ActivityCompat.requestPermissions(),则OS会显示一个带有Deny或Permit按钮的对话框。还有一个永远不会再显示这个复选框。

然而,我无法看到应用程序知道用户是否勾选了此框 - 在onRequestPermissionsResult()中,如果用户单击“拒绝”,则grantResults参数为PERMISSION_DENIED,如果用户在单击“拒绝”之前勾选了复选框,则。 那么无论如何,应用程序可以找出用户是否不想再次看到该对话框?

1 个答案:

答案 0 :(得分:4)

您可以使用ActivityCompat.shouldShowRequestPermissionRationale() - 在少数情况下会返回false

  • 您之前从未要求获得许可
  • 用户已经再次检查过'复选框
  • 政策已禁用该权限(例如,在工作情况下)

如果您曾经要求获得许可,可以将此与共享偏好结合使用,您可以在致电requestPermissions()时有效确定他们是否真正看到了对话框。