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

Gru*_*kes 3 android android-permissions

如果应用程序调用ActivityCompat.requestPermissions(...),操作系统会显示一个带有“拒绝”和“允许”按钮的对话框。还有一个“不再显示此内容”复选框。

我无法让应用程序知道用户是否勾选了此框。在onRequestPermissionsResult(...)中,如果用户单击“拒绝”并且用户在单击“拒绝”之前勾选了复选框,则grantResults参数为PERMISSION_DENIED 。

应用程序有什么方法可以确定用户是否不想再次看到该对话框?

ian*_*ake 7

您可以使用shouldShowRequestPermissionRationale() - 它会false在某些情况下返回:

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

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