时人不识凌云木,直待凌云始道高。这篇文章主要讲述关于权限申请库PermissionsDispatcher的使用相关的知识,希望能为你提供帮助。
PermissionsDispatchergithub地址:??https://github.com/hotchemi/PermissionsDispatcher??
它是什么?PermissionsDispatcher是一个基于注解,帮助开发者简单处理android 6.0之后运行时权限的开源库,使得开发效率更高,代码更简洁明了。
怎么使用?1、添加依赖
首先在项目工程下的 build.gradle 文件中加入对maven仓库依赖引入的支持。ps:我这里引用的是阿里的Maven,大家也可以用google()和 jcenter()替换。
allprojects {
repositories {
maven { url http://maven.aliyun.com/nexus/content/repositories/google }
maven { url http://maven.aliyun.com/nexus/content/repositories/jcenter}
maven { url https://jitpack.io }
}
}
然后在module下的 build.gradle 文件中添加两项依赖:
//权限检测
implementation com.github.hotchemi:permissionsdispatcher:3.0.1
annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:3.0.1"
2、在Activity或Fragment中使用
注解列表:
Annotation | Required | Description |
@RuntimePermissions | ? | 注解在其内部需要使用运行时权限的Activity或Fragment上 |
@NeedsPermission | ? | 注解在需要调用运行时权限的方法上,当用户给予权限时会执行该方法 |
@OnShowRationale | 注解在用于向用户解释为什么需要调用该权限的方法上,只有当第一次请求权限被用户拒绝,下次请求权限之前会调用 | |
@OnPermissionDenied | 注解在当用户拒绝了权限请求时需要调用的方法上 | |
@OnNeverAskAgain | 注解在当用户选中了授权窗口中的不再询问 复选框后并拒绝了权限请求时需要调用的方法,一般可以向用户解释为何申请此权限,并根据实际需求决定是否再次弹出权限请求对话框 |
文章图片
ps:被注解的方法不能是私有方法,因为生成的辅助类需要调用这些方法。
接下来可以调用辅助类里面的方法完成应用的权限请求了。在需要调用权限的位置调用辅助类里面的 xxxWithPermissionCheck方法,xxx是被@NeedsPermission注解的方法名。如下图所示:
文章图片
做完请求权限的操作之后,还需要重写该Activity的onRequestPermissionsResult()方法,其方法内调用辅助类的onRequestPermissionsResult()方法,来对权限获取结果进行处理,代码示例:
//权限申请结果处理的回调
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
ZXingActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);
}
【关于权限申请库PermissionsDispatcher的使用】
推荐阅读
- CentOS 8.4 yum源配置
- #yyds干货盘点#JavaScript 常用类型转换
- Intellij idea 复制粘贴查找快捷键失效问题
- 计算机基础和linux安装帮助
- sshd服务搭建与管理-sshd服务防止BAOLIPOJIE
- Proxmox VE 超融合集群创建多个Ceph Pool
- 基于jsp+Spring+mybatis的SSM企业门户网站设计和实现
- 上云第1期访问云上的 jupyter 环境(保姆级搭建教程)
- Java高级特性之注解