Android onRequestPermissionsResult grantResults size> 1

Hon*_*uan 6 android android-permissions

请求权限后,ActivityCompat.OnRequestPermissionsResultCallback有时包含多个grantResults,只检查第一个是否安全?

培训文档检查这样的帕拉姆:

    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.
    }
Run Code Online (Sandbox Code Playgroud)

但它不清楚,没有找到文件.

Rav*_*avi 16

不,这不是检查第一个权限的好方法,可能是用户已经允许第一个权限但是拒绝了其他权限.这是我共享的功能,以检查是否授予所有权限

public boolean hasAllPermissionsGranted(@NonNull int[] grantResults) {
    for (int grantResult : grantResults) {
        if (grantResult == PackageManager.PERMISSION_DENIED) {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

在你的 onRequestPermissionsResult

if(hasAllPermissionsGranted(grantResults)){
    // all permissions granted
}else {
    // some permission are denied.
}
Run Code Online (Sandbox Code Playgroud)