Android onRequestPermissionsResult grantResults大小> 1个 [英] Android onRequestPermissionsResult grantResults size > 1

查看:397
本文介绍了Android onRequestPermissionsResult grantResults大小> 1个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

After requesting permission, the ActivityCompat.OnRequestPermissionsResultCallback sometimes contains multiple grantResults, is it safe to just check the first one?

培训文档像这样检查参数:

    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.
    }

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

but it's not clearly and no documents found.

推荐答案

否,这不是检查第一权限的好方法,用户可能允许第一权限但被拒绝获得休息权限.这是我共享的功能,用于检查是否授予所有权限

No, It is not a good way to just check first permission, it might be possible that user have allowed first permission but denied for rest permissions. Here is function i am sharing to check whether all permissions are granted or not

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.
}

这篇关于Android onRequestPermissionsResult grantResults大小> 1个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆