安卓获取权限问题一直是个比较麻烦的问题,下面推荐一个获取权限的第三方库 RxJava2 + RxPermission,使用十分方便。

step1

添加依赖:

// 权限管理    implementation 'io.reactivex.rxjava2:rxjava:2.1.3'    implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'

step2

代码中使用(相机 + 录音权限为例):

RxPermissions rxPermissions = new RxPermissions(this);

申请多个权限分两种情况:
1、多个权限的获取情况统一返回,当所有权限都通过时返回成功,否则失败
2、多个权限的获取情况分开返回,可以得到每个权限的申请处理情况

情况1:request(多个权限用逗号分开)

rxPermissions.request(Manifest.permission.CAMERA,                Manifest.permission.RECORD_AUDIO)                .subscribe(new Consumer() {                    @Override                    public void accept(Boolean aBoolean) throws Exception {                        if (aBoolean){                            // 获取全部权限成功                        }else{                            // 获取全部权限失败                        }                    }                });

情况2:requestEach(多个权限用逗号分开)

rxPermissions.requestEach(Manifest.permission.CAMERA,                Manifest.permission.RECORD_AUDIO)                .subscribe(new Consumer() {                    @Override                    public void accept(Permission permission) throws Exception {                        if (permission.name == Manifest.permission.CAMERA){                            if (permission.granted){                                // 获取相机权限成功                            }else{                                // 获取相机权限失败                            }                        }else if (permission.name == Manifest.permission.RECORD_AUDIO){                            if (permission.granted){                                // 获取录音权限成功                            }else{                                // 获取录音权限失败                            }                        }                    }                });

更多相关文章

  1. android访问权限(Android(安卓)permission )大全
  2. Android(安卓)调用用相机拍照保存在本地,imageview根据路径读取图
  3. 【转】Android(安卓)permission 访问权限大全
  4. targetSdkVersion导致的Android运行时权限问题
  5. Error retrieving parent for item: No resource found that mat
  6. android 生成快捷方式(包括源码)
  7. android 使用网络连接adb(需Root)
  8. Android软键盘确认键执行两次
  9. BroadcastReceiver总结

随机推荐

  1. Android Studio Jar包使用一
  2. Android复制Assets目录下的文件到指定目
  3. "0x0055cde3"指令引用的内存"0x0000ffff"
  4. Android Studio升级至3.0所遇到的问题
  5. Android Uri如何在intent中传输
  6. Android Bitmap对象与byte[]相互转换
  7. Android下的RTSP客户端搭建
  8. Android类参考---Fragment(一)
  9. 重大福利!!!《阿里巴巴Android开发手册》首
  10. Android的Broadcast应用说明一例