关于权限申请库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中使用

注解列表:

AnnotationRequiredDescription
@RuntimePermissions注解在其内部需要使用运行时权限的Activity或Fragment上
@NeedsPermission注解在需要调用运行时权限的方法上,当用户给予权限时会执行该方法
@OnShowRationale 注解在用于向用户解释为什么需要调用该权限的方法上,只有当第一次请求权限被用户拒绝,下次请求权限之前会调用
@OnPermissionDenied 注解在当用户拒绝了权限请求时需要调用的方法上
@OnNeverAskAgain 注解在当用户选中了授权窗口中的不再询问 复选框后并拒绝了权限请求时需要调用的方法,一般可以向用户解释为何申请此权限,并根据实际需求决定是否再次弹出权限请求对话框

其中@RuntimePermissions和@NeedsPermission这两个注解是C位(必须要有,不然会输),其他三个注解只作为辅助。当使用了@RuntimePermissions和@NeedsPermission之后,需要Make Project一下,这个操作是为了生成名为 被注解的Activity名称+PermissionsDispatcher.class 的辅助类,它的路径是 app --> build --> intermediates --> javac --> dubug --> compileDebugJavaWithJavac --> classes --> 你的项目包名,如下图所示:

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);
    }

完整代码示例下载链接:https://download.csdn.net/download/qq_35101450/11782532,代码包含安卓其他基础知识点,PermissionsDispatcher只是一小部分内容

大家有什么疑问或者遇到bug,可以评论区留言~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值