关于Android shouldShowRequestPermissionRationale()判定规则的疑问
shouldShowRequestPermissionRationale() 判定规则详解 该方法的返回值完全由用户和当前应用对应权限的历史交互行为决定,和权限本身的危险等级无直接关联,只有需要动态申请的危险权限才会触发这套判定逻辑。
通用判定规则(适用于Android 6.0及以上系统版本)
- 从未给用户弹出过该权限的申请弹窗、用户也没有进行过任何和该权限相关的授权操作时,返回
false - 用户之前拒绝过该权限申请,但没有勾选「不再询问」选项时,返回
true,此时建议先向用户解释权限用途再发起权限申请 - 用户之前拒绝过该权限申请,且勾选了「不再询问」选项时,返回
false - 用户已经成功授予该权限时,返回
false
常见场景补充说明
- 应用首次安装后,第一次发起权限申请前调用该方法,固定返回
false,这种场景可以直接唤起系统权限申请弹窗 - 当方法返回
false且应用未获取对应权限时,说明用户已经勾选了「不再询问」,此时再调用权限申请接口系统会直接驳回,不会弹出任何申请弹窗,需要引导用户手动到系统设置页开启权限 - 如果用户之前授予过权限,之后又手动在系统设置里关闭了权限、且没有开启永久拒绝的相关选项,调用该方法会返回
true
内容的提问来源于stack exchange,提问作者me.at.coding
相关产品推荐
相关产品推荐

