欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

RxPermissions

程序员文章站 2022-06-19 13:16:57
RxPermissionsGitHub:https://github.com/tbruyelle/RxPermissions1.介绍简单点来说这个库是用于快速添加权限的库This library allows the usage of RxJava with the new Android M permission model.即: 这个库支持RxJava与新的Android M版本权限模型一起使用。一般来说rxpermission配合rxjava使用可以达到最好的效果2. 添加依赖To...

RxPermissions

GitHub:

https://github.com/tbruyelle/RxPermissions

1.介绍

简单点来说这个库是用于快速添加权限的库

This library allows the usage of RxJava with the new Android M permission model.
即: 这个库支持RxJava与新的Android M版本权限模型一起使用。

一般来说rxpermission配合rxjava使用可以达到最好的效果

2. 添加依赖

To use this library your minSdkVersion must be >= 14。

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    //添加rxjava
    implementation  'io.reactivex.rxjava2:rxjava:2.0.1'
    implementation  'io.reactivex.rxjava2:rxandroid:2.0.1'
    //rxpermission(配套rxjava使用的)
    implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'
	
    //单独使用使用下面的rxpermission(建议使用上面的rxjava+rxpermission)
	implementation 'com.github.tbruyelle:rxpermissions:0.12'

}

3. 如何在项目中使用

  1. 权限申请
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
  1. 再合适的地方使用
String permissions = "android.permission.SIGNAL_PERSISTENT_PROCESSES";

RxPermissions rxPermissions = new RxPermissions(MainActivity.this);
rxPermissions.requestEach(permissions)
        .subscribe(new Consumer<Permission>() {
            @Override
            public void accept(Permission permission) throws Exception {
                if (permission.granted) {
                    // 用户已经同意该权限
                    //result.agree(permission);
                } else if (permission.shouldShowRequestPermissionRationale) {
                    // 用户拒绝了该权限,没有选中『不再询问』(Never ask again),那么下次再次启动时,还会提示请求权限的对话框
                    //result.refuse(permission);
                } else {
                    // 用户拒绝了该权限,并且选中『不再询问』,提醒用户手动打开权限
                    //result.noMoreQuestions(permission);
                }
            }
        });

本文地址:https://blog.csdn.net/qq_43203586/article/details/107894469