虽然已经有很多关于Android6.0权限处理的方案和帖子甚至框架,但是自己真正动手实现的才是最踏实的!!闲话少说,开车!
楼主主要用了两个类,BaseActivity和PermissionPool
**BaseActivity:**所有Activity的父类
**功能:**让所有继承自它的Activity在需要进行权限处理的时候都只需要调用一个方法(连判断都不用),然后重写一个成功方法和一个失败方法,在方法里做自己的逻辑就行了。是不是很清晰明了??
实现:
public class BaseActivity extends AppCompatActivity {
/**
* android6.0权限处理
* @param code 权限标记Code
* @param permissionName 权限名称
*/
public void permissionDispose(@PermissionPool.PermissionCode int code,@PermissionPool.PermissionName String permissionName){
if(ContextCompat.checkSelfPermission(this, permissionName)!= PackageManager.PERMISSION_GRANTED){
//没有权限,开始申请
ActivityCompat.requestPermissions(this,new String[]{permissionName},code);
}else{
//有权限
onAccreditSucceed(code);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if(grantResults[0]==PackageManager.PERMISSION_GRANTED){
//授权成功
onAccreditSucceed(requestCode);
}else if(grantResults[0]==PackageManager.PERMISSION_DENIED){
//授权失败
onAccreditFail
Android 6.0 权限管理封装实践

本文介绍了一种自定义的Android 6.0权限处理方法,通过BaseActivity作为所有Activity的父类,简化权限请求过程。只需要调用一个方法并重写成功和失败回调,即可轻松处理权限问题。同时,PermissionPool类用于提供常量和便利的权限标识。在使用时,对于需要权限的场景,如打开摄像头,只需两步即可完成权限检查和处理。
最低0.47元/天 解锁文章
4263

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



