Android 6.0 权限适配(PermissionsDipatcher)

目前主流的6.0权限适配框架有PermissionDipatcher,RxPermission,EasyPermission,今天试用了一下PermissionDipatcher,感觉还不错,特此记录.

PermissionDipatcher

首先在AS下载插件,打开file->setting->plugin,在搜索框输入PermissionDipatcher, 点击下载重启即可

Android 6.0 权限适配(PermissionsDipatcher)_第1张图片

然后在要添加权限检查的activity或者是fragment中右击->Generate…->add PermissionDipatcher Dependencies添加依赖


Android 6.0 权限适配(PermissionsDipatcher)_第2张图片

在app下的build.grade下就多了两行
compile(‘com.github.hotchemi:permissionsdispatcher:2.4.0’) { exclude module: ‘support-v13’ }
annotationProcessor ‘com.github.hotchemi:permissionsdispatcher-processor:2.4.0’
当然这部分手动添加依赖也是没有问题的.再编译一下就ok了.
->接下来右击选择Generate…->


Android 6.0 权限适配(PermissionsDipatcher)_第3张图片

添加Camera和CallPhone权限, @NeedsPermission表示成功授权的方法回调,@OnPermissionDenied表示失败的回调,一般只需要这两个方法就足够用了

Android 6.0 权限适配(PermissionsDipatcher)_第4张图片

点击确定,自动生成代码

Android 6.0 权限适配(PermissionsDipatcher)_第5张图片

MainActivityPermissionsDispatcher.onPermissionGrantedWithCheck(this); //表示主动调起授权操作,MainActivityPermissionsDispatcher这个类需要编译后才会自动生成.


当然不能忘记在manifest注册权限,不然一样是失败哦

manifest

这样就ok啦,targetSdkVersion 当然要>=23才有适配android6.0,别忘了哦


注意

当你选中两个权限的话,生成的方法就必须两个权限一起请求,只有当都请求成功了才能触发成功回调,其它情况都是失败,看看github上大牛怎么说的吧

Android 6.0 权限适配(PermissionsDipatcher)_第6张图片

重点看这句 we recommend to separate methods per each permission.
也就是说尽量用一个方法来标注一个权限,将权限申请分离开来


话不多说.特此留念

你可能感兴趣的:(Android开发)