为什么ShowRequestPermissionRationale不起作用?

时间:2018-12-22 12:28:15

标签: java android kotlin permissions

如何在调用权限之前使用 shouldShowRequestPermissionRationale ,并在Activity中使用。

因为在ActivityCompat.requestPermissions之前返回false

if(ActivityCompat.shouldShowRequestPermissionRationale(context,permission)){
    // true
}else{
    // false (always false)
}

1 个答案:

答案 0 :(得分:1)

如果需要shouldShowRequestPermissionRationale方法来解释用户为什么需要许可,则方法hashMap.merge(ch, 1, (left, right) -> left + right); 返回true。第一次请求权限时,此方法返回 false

但是,如果用户拒绝一次该权限,则在再次请求该权限时,此方法将返回 true ,因为最好向用户解释为什么该应用需要此权限

已授予权限后,此方法将返回 false

因此,一个好的做法是首先检查此方法返回的内容,以及是否需要向用户解释,然后使用对话框或类似内容解释该方法,然后请求许可,否则直接询问许可。

您也可以看看我的library,它可以简化整个过程以及有关运行时权限的其他过程。