2015-10-19 60 views
0

如果所有调用ActivityCompat.requestPermissions(),那么操作系统将显示一个包含拒绝或许可按钮的对话框。还有一个从不再显示这个复选框。Android M - 无论如何知道用户是否选择永不再显示授予权限对话框?

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

回答

4

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

  • 你从来没有问许可之前
  • 用户已经检查了“永不再”复选框
  • 的许可已被政策禁用(例如,在工作情况下)

通过将此选项与共享首选项存储在一起,如果您曾经要求过许可n,当你拨打requestPermissions()时,你可以有效地确定他们是否真的会看到对话。