目前主流的6.0权限适配框架有PermissionDipatcher,RxPermission,EasyPermission,今天试用了一下PermissionDipatcher,感觉还不错,特此记录.
PermissionDipatcher
首先在AS下载插件,打开file->setting->plugin,在搜索框输入PermissionDipatcher, 点击下载重启即可
然后在要添加权限检查的activity或者是fragment中右击->Generate…->add PermissionDipatcher Dependencies添加依赖
在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…->
添加Camera和CallPhone权限, @NeedsPermission表示成功授权的方法回调,@OnPermissionDenied表示失败的回调,一般只需要这两个方法就足够用了
点击确定,自动生成代码
MainActivityPermissionsDispatcher.onPermissionGrantedWithCheck(this); //表示主动调起授权操作,MainActivityPermissionsDispatcher这个类需要编译后才会自动生成.
当然不能忘记在manifest注册权限,不然一样是失败哦
这样就ok啦,targetSdkVersion 当然要>=23才有适配android6.0,别忘了哦
注意
当你选中两个权限的话,生成的方法就必须两个权限一起请求,只有当都请求成功了才能触发成功回调,其它情况都是失败,看看github上大牛怎么说的吧
重点看这句 we recommend to separate methods per each permission.
也就是说尽量用一个方法来标注一个权限,将权限申请分离开来
话不多说.特此留念