博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android6.0动态权限获取框架:RxPermission(基于RxJava2)
阅读量:4079 次
发布时间:2019-05-25

本文共 1896 字,大约阅读时间需要 6 分钟。

首先在build.gradle中添加依赖库

rxjava和retrofit:

compile 'io.reactivex.rxjava2:rxjava:2.x.y'compile 'io.reactivex.rxjava2:rxandroid:2.0.1'compile 'com.squareup.retrofit2:retrofit:2.2.0'compile 'com.squareup.retrofit2:converter-gson:2.2.0'compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'

rxpermission:

compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'

在github地址:

master分支是基于rxjava的,然后2.x分支是基于rxjava2。
这里写图片描述

在需要动态获取权限的地方使用:

RxPermissions rxPermissions = new RxPermissions(this);        rxPermissions.requestEach(Manifest.permission.READ_PHONE_STATE)                .subscribe(new Consumer
() { @Override public void accept(Permission permission) throws Exception { if (permission.granted) { // 用户已经同意该权限 toast("用户已经同意该权限"); } else if (permission.shouldShowRequestPermissionRationale) { // 用户拒绝了该权限,没有选中『不再询问』(Never ask again),那么下次再次启动时,还会提示请求权限的对话框 toast("用户拒绝了该权限"); } else { // 用户拒绝了该权限,并且选中『不再询问』,提醒用户手动打开权限 toast("权限被拒绝,请在设置里面开启相应权限,若无相应权限会影响使用"); } } });

如果是多条权限直接在后边添加,也可以写成数组添加进去。上边的方法如果有多个权限的时候,会多次调用。也可以使用下边的方法:

new RxPermissions(TakePhotoActivity.this).request(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)        .subscribe(new Consumer
() { @Override public void accept(Boolean aBoolean) throws Exception { if (aBoolean) { //所有权限都开启aBoolean才为true,否则为false toast("权限已开启"); } else { toast("权限被拒绝,请在设置里面开启相应权限,若无相应权限会影响使用"); } } });
你可能感兴趣的文章
标定之相机的内参和外参
查看>>
刚刚发现《OpenCV4快速入门》里面有讲到pnp
查看>>
我忽然想到,标定的原理是不是就是利用的pnp?
查看>>
ROS_PACKAGE_PATH总结一下到底什么时候要添加,还有Python写的功能包怎么添加环境变量?
查看>>
通过ROS开启Gazebo的世界(这篇写得不错,教会了我怎么自己建一个gazebo的功能包,建立世界模型,导入机器人模型,通过roslaunch启动,值得细读真正学会!)
查看>>
ROS摄像机的标定(这里很好的一点就是给出了标定结果的各个参数的含义,这个很多都没讲)
查看>>
实际好像只用到了相机内参矩阵和畸变参数?
查看>>
计算机视觉-相机内参数和外参数
查看>>
相机内参和外参的解释
查看>>
我感觉我自己基于pnp原理可以自己写个简单的SLAM了,而且还是VIO的。是的,可以自己推出。
查看>>
菜鸟专学:从头到尾创建自己的SLAM系统(转载,我觉这种自己写一个SLAM很好)
查看>>
C++之STL和Boost
查看>>
kubernetes节点与节点之间的通信是如何弄的?我想和ROS的对比一下
查看>>
kubernetes中文文档
查看>>
K8S 容器之间通讯方式
查看>>
我看Kubernetes的操作不需要图形界面,只需要命令行就可以了,所以买个云服务器就可以弄了应该。
查看>>
现在来看,做个普罗米修斯的docker镜像对我而言并不难,对PX4仿真环境配置也熟悉了。
查看>>
删除docker容器和镜像的命令
查看>>
Docker run 命令
查看>>
Docker容器的创建、启动、和停止
查看>>