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

android 6.0权限处理

2017-02-23 23:31 134 查看
在BaseActivity定义如下方法

//检查是否有权限
public boolean hasPermission(String... permissions){
for (String permission:permissions){
if(ContextCompat.checkSelfPermission(this,permission)!= PackageManager.PERMISSION_GRANTED){
return false;
}
}
return true;
}
//请求权限
public void requestPermission(int code,String... permissions){
ActivityCompat.requestPermissions(this,permissions,code);
}

//请求结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

switch (requestCode){
case Constants.WRITExxxx:
if(grantResults[0]==PackageManager.PERMISSION_GRANTED){

}else{//用户拒绝

}
doSDCardPersimission();
break;
case Constants.CAllxxxx
doCallphone();
}
}
//子类具体实现
public void  doSDCardPersimission(){

}
//子类具体实现
public void doCallphone(){

}


具体的实现类中,这样使用

//调用打电话方法
private void callPhone(){
if(hasPermission(Manifest.permission.CALL_PHONE)){
doCallphone();
}else{
requestPermission(Constants.CAllxxxx,Manifest.permission.CALL_PHONE);
}
}
//真正的打电话操作
public void doCallphone(){
//调用系统打电话方法
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: