您的位置:首页 > 移动开发 > Android开发

Android动态申请权限

2018-01-05 14:23 211 查看

1.Android6.0动态申请权限

1.检查权限是否已经授予

//1.检测是否已经全部授权
private boolean checkPermission() {
String[] permissions = {Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
for (String permission : permissions){//只要有个没授权则都需要申请
if(ContextCompat.checkSelfPermission(this, permission)!= PackageManager.PERMISSION_GRANTED){
return false;
}
}
return true;
}

2.没有授权则申请相关权限

if(checkPermission()){//检测是否已经全部授权
takePhoto();//do something
}else {//2.没有授权则重新申请
ActivityCompat.requestPermissions(this,new String[]{
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
},666);
}

3.处理用户授权结果

//3.回调申请授权的结果
boolean isGrant ;
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 666:{
// 判断是否所有的权限都已经授予了
isGrant = true;
for (int grant : grantResults) {
if (grant != PackageManager.PERMISSION_GRANTED) {
isGrant = false;
Toast.makeText(this, "需要授权!", Toast.LENGTH_SHORT).show();
break;
}
}
if(isGrant){
takePhoto();//dosomething
}

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: