Android6.0------权限申请RxPermissions

前面写了Android6.0权限介绍和权限单个,多个申请,用的是纯Java代码,本文主要说的是借助第三方库来实现权限申请。

借助第三方库 RxPermissions来申请6.0权限。

RxPermissions库地址:https://github.com/tbruyelle/RxPermissions

bulid.gradle引入:

  compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'compile "io.reactivex.rxjava2:rxjava:2.0.0"

 

权限相关知识,权限表请看博客: Android6.0------权限管理          Android6.0------权限申请管理(单个权限和多个权限申请)

前提:APP运行在Android 6.0 (API level 23)或者更高级别的设备中,而且targetSdkVersion>=23时,系统将会自动采用动态权限管理策略,

先来看看效果图:(注:如果未授权就点击打电话或拍照就会直接闪退,由此6.0必须手动授权,开发时如果未授权,可以判断并提示用户从新授权

        

 

 

上图:

 

1:单个授权,电话授权。

 

2:有电话,SD卡,拍照授权三个一起授权

 

单个授权

 

 //检查版本是否大于Mif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//单个权限
rxPermissions.request(Manifest.permission.CAMERA).subscribe(new Observer<Boolean>() {@Overridepublic void onSubscribe(Disposable d) {}@Overridepublic void onNext(Boolean value) {if(value){showToast("同意权限");}else {showToast("拒绝权限");}}@Overridepublic void onError(Throwable e) {}@Overridepublic void onComplete() {}});}

 

 

多个授权

        rxPermissions.requestEach(Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CALL_PHONE).subscribe(new Observer<Permission>() {@Overridepublic void onSubscribe(Disposable d) {}@Overridepublic void onNext(Permission permission) {if (permission.name.equals(Manifest.permission.CAMERA)){showToast("申请成功");}}@Overridepublic void onError(Throwable e) {}@Overridepublic void onComplete() {}});

 

 

 

前提一定要注意:AndroidManifest中:

 

 

 

  <uses-permission android:name="android.permission.CALL_PHONE"/>  //电话 <uses-permission android:name="android.permission.CAMERA"/>  //拍照 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  //sd卡

 

 

 

此案例是借助第三方RxPermissions来写的了,可以去看看这个库的代码。

 

 

案例源码下载

 

转载于:https://www.cnblogs.com/zhangqie/p/7574174.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博客作业04--树

1.学习总结(2分) 1.1树结构思维导图 1.2 树结构学习体会 树这一章节比较复杂&#xff0c;知识点繁多&#xff0c;结合了递归的知识所以代码阅读起来会有障碍&#xff0c;难以理解&#xff0c;所以学起来比较吃力&#xff0c;而且很多经典的算法理解的不是很透彻解决pta上的问题…

[DP/单调队列]BZOJ 2059 [Usaco2010 Nov]Buying Feed 购买饲料

首先我想吐槽的是题目并没有表明数据范围。。。 这个题目 DP方程并不难表示。 dp[i][j]表示前i个地点携带了j个货物的最小花费 dp[i][j] dp[i-1][k] (j-k) * cost j*j*(leng[i]-leng[i-1]) 如果你这样直接提交上去&#xff0c;恭喜你超时&#xff01;&#xff01;&#xff0…

039_MySQL_多表查询

#创建部门 CREATE TABLE IF NOT EXISTS dept (did int not null auto_increment PRIMARY KEY,dname VARCHAR(50) not null COMMENT 部门名称 )ENGINEINNODB DEFAULT charset utf8;#添加部门数据 INSERT INTO dept VALUES (1, 教学部); INSERT INTO dept VALUES (2, 销售部); IN…

4.navicat11激活教程,亲测可用哦!

原文地址&#xff1a;http://blog.csdn.net/sanbingyutuoniao123/article/details/52589678Navicat是一款数据库管理工具, 用于简化, 开发和管理MySQL, SQL Server, SQLite, Oracle 和 PostgreSQL 的数据库&#xff1b;Navicat数据模型工具以图形化方式创建关联式数据库&#x…

想要去阿里面试?你必须得跨过 JVM 这道坎!

概述 很多人想要到阿里巴巴、美团、京东等互联网大公司去面试&#xff0c;但是现在互联网大厂面试一般都必定会考核JVM相关的知识积累和实践经验&#xff0c;毕竟线上系统写好代码部署之后&#xff0c;每个工程师都必须关注JVM相关的东西&#xff0c;比如OOM、GC等问题. 所以一…

医学知识图谱一

大纲 知识自动提取技术 医学知识融合 医学知识推理 转载于:https://www.cnblogs.com/quietwalk/p/9000950.html

在一个div里,列表样式图片进行float,实现水平排序

<div class"xiangce"><ul> <li><a href"#"><img src"images/pic4.gif" alt"">产品名称</a></li><li><a href"#"><img src"images/pic4.gif" alt"…

The listener supports no services

$ lsnrctl start 报错提示: The listener supports no services The command completed successfully 如图所示&#xff1a; 这样启动后远程连接会报错&#xff1a; oracle ORA-12514:TNS:listener does not currently know of service requested in connect descriptor 问题原…

SEO【总结】by 2019年5月

2019独角兽企业重金招聘Python工程师标准>>> 关键点&#xff1a; 1、代码 1.1、seo前端代码&#xff1a;基于Html代码的SEOherf&#xff1a;https://my.oschina.net/u/2862573/blog/3030664 注意的要点&#xff1a; h1&#xff0c;h2的内容很关键 网页的压缩、静态化…

Oracle数据库 查看表是否是 索引组织表的方法

1. 最近在工作过程中发现 一个表插入很慢 以为是索引组织表, 所以一直有点纠结 但是发现 产品里面是没有IOT的 于是找了下公司的OCP 问了下 如何查看 就是 user_tables 视图里面的一个字段. 见图: 转载于:https://www.cnblogs.com/jinanxiaolaohu/p/9018037.html

Windows server 2016 搭建RDS服务

计算机的更新换代太快&#xff0c;新购置的计算机没几年便觉得运行速度越来越慢&#xff0c;尤其是在运行一些比较大的应用程序是&#xff0c;用户总是抱怨运行速度太慢或者总是死机等问题。如果要更换新的计算机&#xff0c;又得不到领导的批准&#xff0c;因此对于企业来说&a…

springboot2.0 多数据源整合问题 At least one JPA metamodel must be present!   at

2019独角兽企业重金招聘Python工程师标准>>> 数据源代码&#xff1a; 第一个读取配置文件代码&#xff1a; package com.datasource;import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.sp…

docker实战系列之搭建rabbitmq

1.搜索镜像【注&#xff1a;因为我这里采用的是阿里云镜像加速器,所以我直接在阿里云中搜索相关镜像路径】,点击"详情"查看公网拉取路径 2.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/jc/rabbitmq-3 3.查看拉取的镜像 docker images 4.创建并运行容器【…

计算机基础知识--编码知识

编码回顾 编码转换 Python的bytes类型 编码回顾 在备编码相关的课件时&#xff0c;在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了&#xff0c;搞Python不把编码彻底搞明白&#xff0c;总有一天它会猝不及防坑你一把。 不过感觉这哥们的答案并没把编码问题写明…

Linux——安装FTP服务器

1、检查安装vsftpd软件 使用如下命令#rpm -qa |grep vsftpd可以检测出是否安装了vsftpd软件&#xff0c; 如果没有安装&#xff0c;使用YUM命令进行安装。 2、启动服务 使用vsftpd软件&#xff0c;主要包括如下几个命令&#xff1a; 启动ftp命令#service vsftpd start 停止ftp…

测试开发面试准备之Selenium 工作原理

Selenium 经历了两个版本&#xff0c;Selenium 1.0 和 Selenium 2.0&#xff0c;本文仅介绍Selenium2的原理&#xff0c;在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。 Selenium2简介 Selenium是一个用于Web应用程序测试的工具&#xff0c;支持多平台、…

JavaScript快速入门-ECMAScript本地对象(String)

一、String对象 String对象和python中的字符串一样&#xff0c;也有很多方法&#xff0c;这些方法大概分为以下种类&#xff1a; 1、索引和查找 1、charAt() 返回指定位置的字符。 2、charCodeAt() 返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。 …

ZOJ4116 Game on a Graph

给一个含n个点 m条边的连通图 把k个人分成两组 轮流拿掉一条边 当取走一条边后图不再连通 这个队就输了 水题啦 边为n-1时 下一个拿掉边的那个组就输啦 AC代码&#xff1a; 1 #include<bits/stdc.h>2 using namespace std;3 typedef long long ll;4 typedef unsigned lon…

集美大学1414班软件工程个人作业2——个人作业2:APP案例分析

一、作业链接 个人作业2&#xff1a;APP案例分析 二、博文要求 通过分析你选中的产品&#xff0c;结合阅读《构建之法》&#xff0c;写一篇随笔&#xff0c;包含下述三个环节的所有要求。 第一部分 调研&#xff0c; 评测 下载软件并使用起来&#xff0c;描述最简单直观的个人第…

回溯算法 ------回溯算法的几个例子

1.回溯算法的小结 2.回溯算法的几个例子 2.1 ------ 4后问题 搜索空间&#xff1a; 2.2 ------01背包问题 01背包问题的算法设计 01背包问题的实例分析 01背包问题的搜索空间 2.3 ------- 货郎问题 货郎问题实例 货郎问题的搜索空间 最后再来个小结 转载于:https://www.cnb…