github:
https://github.com/tbruyelle/RxPermissions
demo:
https://github.com/anymyna/android_laboratory

步骤:

1、 初始化

dependencies {    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'    implementation 'io.reactivex.rxjava2:rxjava:2.1.0'    implementation 'com.github.tbruyelle:rxpermissions:0.10.2'}

2、 用法

检测是否有某权限

        RxPermissions permissions = new RxPermissions(this);        permissions.setLogging(true);        Log.d(TAG, "checkPermissionsIsGranted WRITE_EXTERNAL_STORAGE " + permissions.isGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE));

申请单个权限

                RxPermissions permissions = new RxPermissions(RxPermissionsActivity.this);                permissions.setLogging(true);                permissions.request(Manifest.permission.CAMERA)                        .subscribe(new Consumer<Boolean>() {                            @Override                            public void accept(Boolean aBoolean) throws Exception {                                Log.d(TAG, "text_camera aBoolean " + aBoolean);                            }                        });

申请多个权限

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

更多相关文章

  1. Android 判断是否得到 root权限
  2. android 权限库,拿来就能用
  3. 【Android】Android permission 访问权限
  4. android 文件目录权限
  5. android 6.0权限问题处理的核心代码--shouldShowRequestPermissi
  6. Android 图形用户界面 之 绘图(一)
  7. android 6.0及以上危险权限的获取
  8. android需要的访问权限(不断更新,希望大家多交流)
  9. android 权限明细

随机推荐

  1. 实战Spring Boot 2.0系列(二) - 全局异常
  2. Spring Cloud整合Thrift RPC(二) - sprin
  3. 2年java,蚂蚁一面,卒
  4. 到处是map、flatMap,啥意思?
  5. 实战Spring Boot 2.0系列(三) - 使用@Asy
  6. 学习LINUX的第15天
  7. "Sed" 高级功能:我这小脑瓜都快绕晕了
  8. 程序员画像,十年沉浮
  9. 实战Spring Boot 2.0系列(四) - 使用WebA
  10. 我就是不看好jpa