在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(){
//调用系统打电话方法
}
本文介绍了一个BaseActivity类中实现的Android应用权限管理方法,包括权限检查、请求及处理请求结果的过程,并展示了如何在具体实现类中调用这些方法来完成SD卡权限和拨打电话权限的功能。
504

被折叠的 条评论
为什么被折叠?



