目录
0、相关文章:
GitHub地址 https://github.com/yanzhenjie/AndPermission
AndPermission 集成使用(比较详细)
Android 6.0权限管理及其封装 (2016年07月13日)
1、先看一下链式调用
AndPermission.with(MainActivity.this)
.runtime()
.permission(Permission.READ_PHONE_STATE)
.onGranted(new Action<List<String>>() {
@Override
public void onAction(List<String> data) {
}
})
.onDenied(new Action<List<String>>() {
@Override
public void onAction(List<String> data) {
}
})
.start();
2、添加依赖
此处会有版本问题:
项目的compileSdkVersion 为28 ,使用最新版本 2.0.3没有问题
implementation 'com.yanzhenjie:permission:2.0.3'
如果 compileSdkVersion 为26,使用版本:2.0.0-rc4
implementation 'com.yanzhenjie:permission:2.0.0-rc4'
3、API说明
再开头我们都看到了 AndPermission 的基本 API,我们主要看权限申请回调情况
- rationale
rationale 这是拦截器,当用户不给权限时优先执行,用户给权限就不会执行,AndPermission 给大家提供这个方法就是考虑有的 app 的体验上,这里他推荐大家 toast 一个 diaolg 出来,用户提示用户为啥,需要哪些权限,然后我们用这个 executor 执行器去决定是终止请求还是继续执行权限请求 - onGranted
用户同意给权限 - onDenied
用户不给权限,包括用户选择拒绝和用户点了不再提示2种情况- AndPermission.hasAlwaysDeniedPermission
针对用户点了不再提示这种情况,可以使用这个 api 去判断,然后我们启动权限设置页 - AndPermission.permissionSetting
AndPermission 提供的动权限设置页的 API ,可惜的是不能监听返回结果,大家从上面的演示可以看到,这里需要考虑如何处理
- AndPermission.hasAlwaysDeniedPermission