天天看点

Android 6.0 权限适配(PermissionsDipatcher)

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

PermissionDipatcher

首先在AS下载插件,打开file->setting->plugin,在搜索框输入PermissionDipatcher, 点击下载重启即可
Android 6.0 权限适配(PermissionsDipatcher)
然后在要添加权限检查的activity或者是fragment中右击->Generate…->add PermissionDipatcher Dependencies添加依赖
Android 6.0 权限适配(PermissionsDipatcher)

在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)
添加Camera和CallPhone权限, @NeedsPermission表示成功授权的方法回调,@OnPermissionDenied表示失败的回调,一般只需要这两个方法就足够用了
Android 6.0 权限适配(PermissionsDipatcher)
点击确定,自动生成代码
Android 6.0 权限适配(PermissionsDipatcher)
MainActivityPermissionsDispatcher.onPermissionGrantedWithCheck(this); //表示主动调起授权操作,MainActivityPermissionsDispatcher这个类需要编译后才会自动生成.
当然不能忘记在manifest注册权限,不然一样是失败哦
Android 6.0 权限适配(PermissionsDipatcher)
这样就ok啦,targetSdkVersion 当然要>=23才有适配android6.0,别忘了哦

注意

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

重点看这句 we recommend to separate methods per each permission.

也就是说尽量用一个方法来标注一个权限,将权限申请分离开来

话不多说.特此留念

继续阅读