RxPermissions动态权限

用基于Rxjava设置动态权限
RxPermissions GitHub地址

要使用此库,您的minSdkVersion必须 > = 11

1.下载RxPermissions

在 build.gradle中 :

repositories {
    jcenter() //如果没有就添加,有就不用添加了
}

dependencies {
    compile 'com.tbruyelle.rxpermissions:rxpermissions:0.9.3@aar'
}

2.支持Rxjava2

RxPermissions支持RxJava2,只需将包名称更改为com.tbruyelle.rxpermissions2。

dependencies {
    compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar'
}

3.版本9

版本0.8或更早的版本获得RxPermissions的方式为:

RxPermissions.getInstance(this) -> new RxPermissions(this);

从版本0.9开始RxPermissions类不再是单例。创建RxPermissions实例的方式为:

RxPermissions rxPermissions = new RxPermissions(this);

4.用法

  • 例如进行相机权限的请求:
rxPermissions
    .request(Manifest.permission.CAMERA)
    .subscribe(granted -> {
        if (granted) { // Always true pre-M
           // 权限通过后执行
        } else {
           // 拒绝权限后执行
        }
    });
  • 进行多个权限的请求:
rxPermissions
    .request(Manifest.permission.CAMERA,
             Manifest.permission.READ_PHONE_STATE)
    .subscribe(granted -> {
        if (granted) {
           // 所有权限允许后执行
        } else {
           // 有一个不允许后执行
        }
    });

当然进行权限设置的时候都是用的lambda表达式,当然也可以不用这样所,不过我比较喜欢用表达式,这样代码很简洁.

你可能感兴趣的:(RxPermissions动态权限)