美文网首页
checkSelfPermission检查权限是否授予

checkSelfPermission检查权限是否授予

作者: 子非鱼7868 | 来源:发表于2018-12-07 11:22 被阅读63次

ContextCompat.checkSelfPermission()

Determine whether <em>you</em> have been granted a particular permission.
确定是否你授予了指定的权限

DelegatingContext类 源码解析
public int checkPermission(@NonNull String permission, int pid, int uid) {
Checks.checkArgument(!TextUtils.isEmpty(permission), "permission cannot be null or empty");
return this.mRevokedPermissions.contains(permission)?-1:0;
}
private Set<String> mRevokedPermissions = new HashSet();

mRevokedPermissions 这个单词翻译过来就是取消的权限,可以引申为没授权的权限,HashSet保证每个权限在Set中都是唯一的,没有重复的权限

this.mRevokedPermissions.contains(permission)?-1:0这句话意思就是未授权的权限中是否包含permission权限?如果包含那么说明permission也是未授权所以返回值就是-1,否则的话就是说明该权限已经授权,返回值为0

我们经常使用ContextCompat.checkSelfPermission()PackageManager.PERMISSION_GRANTED进行比较,打开源码发现
public static final int PERMISSION_GRANTED = 0;
这一点正好印证了0是表示授权的

相关文章

网友评论

      本文标题:checkSelfPermission检查权限是否授予

      本文链接:https://www.haomeiwen.com/subject/nntthqtx.html