Android 中RxPermissions 的使用方法详解
时间:2022-07-28
本文章向大家介绍Android 中RxPermissions 的使用方法详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Android 中RxPermissions 的使用方法详解
以请求拍照、读取位置权限为例
module的build.gradle:
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'
compile 'io.reactivex.rxjava2:rxjava:2.0.5'
AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/
<uses-permission android:name="android.permission.CAMERA"/
源码:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
RxPermissions rxPermissions = new RxPermissions((Activity) mContext);
rxPermissions.request(Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CAMERA)
.subscribe(new Observer<Boolean () {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Boolean aBoolean) {
if (aBoolean) {
Toast.makeText(mContext, "已获取权限,可以干想干的咯", Toast.LENGTH_LONG)
.show();
} else {
//只有用户拒绝开启权限,且选了不再提示时,才会走这里,否则会一直请求开启
Toast.makeText(mContext, "主人,我被禁止啦,去设置权限设置那把我打开哟", Toast.LENGTH_LONG)
.show();
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
});
注意:
必须加 compile ‘io.reactivex.rxjava2:rxjava:2.0.5’
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- Python基础08 面向对象的基本概念
- 如何选择合适的PaaS
- 使用Qt installer framework制作安装包
- Qt Style Sheet实践(三):QCheckBox和QRadioButton
- 堆排序
- 剑指OFFER之旋转数组的最小数字(九度OJ1386)
- Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
- 剑指OFFER之旋转数组的最小数字(九度OJ1386)
- Qt Style Sheet实践(二):组合框QComboBox的定制
- Python基础07 函数
- 剑指OFFER之旋转数组的最小数字(九度OJ1386)
- 5 云安全解决方案的注意事项
- Qt Style Sheet实践(一):按钮及关联菜单
- Python基础06 循环
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Ubuntu上释放空间的5种简单方法
- Linux下Redis允许远程连接的实现方法
- Linux Socket 编程简介和实现
- Linux (Ubuntu 18.04) 下安装vim编辑器的方法
- 把windows下的字体安装到Linux系统下的方法介绍
- Ubuntu 7.10修改软件源的方法
- Linux 僵尸进程产生原因及解决方法
- Ubuntu17.04配置更换国内源的方法
- Centos7硬盘挂载方法
- linux sort多字段排序实例解析
- Linux中Centos7搭建Hadoop服务步骤
- Centos7实现磁盘限额设置方法
- 在CentOS中部署多节点Citus集群的详细步骤
- 建立自己的npm镜像服务器
- Hugo搭建博客(一)— 基本设置