请求权限后,ActivityCompat.OnRequestPermissionsResultCallback有时包含多个grantresult,只检查第一个grantresult是否安全?
training doc检查如下参数:
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
}
但不清楚,也没有找到文件。
最佳答案
不,这不是检查第一个权限的好方法,用户可能已经允许了第一个权限,但拒绝了rest权限。下面是我共享的函数,用于检查是否授予了所有权限
public boolean hasAllPermissionsGranted(@NonNull int[] grantResults) {
for (int grantResult : grantResults) {
if (grantResult == PackageManager.PERMISSION_DENIED) {
return false;
}
}
return true;
}
在你的
onRequestPermissionsResult
if(hasAllPermissionsGranted(grantResults)){
// all permissions granted
}else {
// some permission are denied.
}