shouldShowRequestPermissionRationale用法

来源:互联网 发布:算法精解:c语言描述pdf 编辑:程序博客网 时间:2024/06/16 04:12

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

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

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

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

shouldShowRequestPermissionRationale()

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

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

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

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

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

0 0
原创粉丝点击