Android 笔记 permissions 之 shouldShowRequestPermissionRationale()

permissions

在6.0时代,需要在程序运行时获取相关权限,展开一个对话框询问是否授予该程序相应权限。

从第二次开始运行的时候,会增加一个选项框,“以后不再询问”,如果选择了这个选项,那么以后程序不会再询问是否授予权限了。

这时候选择了确认倒还好,之后倒方便了。
如果选择了拒绝,那之后也不会显示对话框,但是权限一直是拒绝的。这样是非常不好的体验,不知道的还以为程序崩溃了。

所以,我们需要在这个时候也显示相应对话框来告诉用户

shouldShowRequestPermissionRationale()

这个方法是AppCompact里面的,用于权限管理

为了帮助查找用户可能需要解释的情形,Android 提供了一个实用程序方法,即 shouldShowRequestPermissionRationale()。如果应用之前请求过此权限但用户拒绝了请求,此方法将返回 true。

注:如果用户在过去拒绝了权限请求,并在权限请求系统对话框中选择了 Don’t ask again 选项,此方法将返回 false。如果设备规范禁止应用具有该权限,此方法也会返回 false。

这是官网里面的解释。所以,如果用户选择了拒绝并且不再提醒,那么这个方法会返回false,通过这一点,就可以在适当的时候展开一个对话框,告诉用户到底发生了什么,需要怎么做

实际测试中发现,这个时候如果直接调用requestPermissions()也没用,因为刚才说了,已经选择不再提醒了。所以,需要告诉用户怎么打开权限:在app信息界面可以选择并控制所有的权限。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值