请求权限后,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.
}

07-24 09:27