Android6.0动态权限shouldShowRequestPermissionRationale的含义

一个老生常谈的问题,关于Android6.0及以后版本对动态权限的处理方法。这里主要说说在处理动态权限时一个重要的方法ActivityCompat.shouldShowRequestPermissionRationale(context, permission),相信大部分人都不陌生,但他具体什么意思可能有部分人又很模糊,今天用示例演示下这个方法的含义。

APP调用一个需要权限的函数时,如果用户拒绝某授权,下一次弹框时将会有一个“禁止后不再询问”的选项,来防止APP以后继续请求授权。如果这个选项在拒绝授权前被用户勾选了,下次为这个权限请求requestPermissions时,对话框就不弹出来了,结果就是app啥都不干。遇到这种情况需要在请求requestPermissions前,检查是否需要展示请求权限的提示,这时候用的就是ActivityCompat.shouldShowRequestPermissionRationale方法。

 

下面就分场景说明对该方法进行说明

1、第一次请求权限时ActivityCompat.shouldShowRequestPermissionRationale=false;

Android6.0动态权限shouldShowRequestPermissionRationale的含义

2、第一次请求权限被禁止,但未选择【不再提醒】ActivityCompat.shouldShowRequestPermissionRationale=true;

Android6.0动态权限shouldShowRequestPermissionRationale的含义

3、允许某权限后ActivityCompat.shouldShowRequestPermissionRationale=false;

Android6.0动态权限shouldShowRequestPermissionRationale的含义

4、 禁止权限,并选中【禁止后不再询问】ActivityCompat.shouldShowRequestPermissionRationale=false;

Android6.0动态权限shouldShowRequestPermissionRationale的含义Android6.0动态权限shouldShowRequestPermissionRationale的含义