Android(安卓)RxPermissions 使用教程
16lz
2022-04-21
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 " ); } } });
更多相关文章
- android 中调用系统的发短信功能
- Android(安卓)判断是否得到 root权限
- Android(安卓)SDK Manager 更新错误
- 【Android】Android(安卓)permission 访问权限
- Android(安卓)UDP广播包抓取
- android 权限库,拿来就能用
- android一键清除最近应用按钮
- 判断Android客户端网络是否连接
- Android(安卓)Activity生命周期