如何在调用权限之前使用 shouldShowRequestPermissionRationale ,并在Activity中使用。
因为在ActivityCompat.requestPermissions之前返回false
if(ActivityCompat.shouldShowRequestPermissionRationale(context,permission)){
// true
}else{
// false (always false)
}
答案 0 :(得分:1)
如果需要shouldShowRequestPermissionRationale
方法来解释用户为什么需要许可,则方法hashMap.merge(ch, 1, (left, right) -> left + right);
返回true。第一次请求权限时,此方法返回 false 。
但是,如果用户拒绝一次该权限,则在再次请求该权限时,此方法将返回 true ,因为最好向用户解释为什么该应用需要此权限
已授予权限后,此方法将返回 false 。
因此,一个好的做法是首先检查此方法返回的内容,以及是否需要向用户解释,然后使用对话框或类似内容解释该方法,然后请求许可,否则直接询问许可。
您也可以看看我的library,它可以简化整个过程以及有关运行时权限的其他过程。