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 中调用系统的发短信功能
  2. Android(安卓)判断是否得到 root权限
  3. Android(安卓)SDK Manager 更新错误
  4. 【Android】Android(安卓)permission 访问权限
  5. Android(安卓)UDP广播包抓取
  6. android 权限库,拿来就能用
  7. android一键清除最近应用按钮
  8. 判断Android客户端网络是否连接
  9. Android(安卓)Activity生命周期

随机推荐

  1. android:keyboardNavigationCluster
  2. 【Android】Inconvertible types:cannot
  3. AlertDialog
  4. android textview 利用空格实现文字均匀
  5. port exosip to android
  6. 解决 Android(安卓)java.lang.RuntimeExc
  7. android java复制和压缩文件或文件夹
  8. Android(安卓)TXT文件读写
  9. SQlite Android(安卓)数据库应用程序系统
  10. android 自定义toggle Button按钮