项目引入了鸿洋大神开源的一个权限处理库,采用了注解(编译时,设置gradle,依赖必须在app级别的gradle文件声明)开发,可直接通过注解获取权限申请成功和失败回调。
github地址:MPermissions
注意:gradle2.2之后不需要apt了,直接在app级别的gradle写如下声明即可:
123 > annotationProcessor 'com.zhy:mpermission-compiler:1.0.0'compile 'com.zhy:mpermission-api:1.0.0'>
由于这个项目lib库中定义了app_name标签,需要在app的manifest文件中加入tools:replace="android:label"
,具体如下:
|
|
|
|
以相机权限为例:
首先,相机点击事件:
|
|
这里是权限处理的代码,相机点击后的真正逻辑不能写在点击事件中,要写在注解的回调里面:
|
|
就是说不管一开始有没有权限,最终都会执行到requestSdcardSuccess这里。