前面写了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

Android6.0------权限申请RxPermissions相关推荐

  1. android6.0权限适配RxPermissions

    1.直接获取权限(使用Retrolambda使代码更加简洁,当然并不是必须使用): // 必须在初始化阶段调用,例如onCreate()方法中 RxPermissions.getInstance(th ...

  2. Android6 0权限机制(一):介绍

    本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家发布 Android6.0权限机制(一):介绍 Android6.0权限机制(二):封装 Android6.0权限机制(三):6. ...

  3. Android6.0权限适配及兼容库的实现

    从6.0 MarshMallow开始,Android支持动态权限管理,即有些权限需要在使用到的时候动态申请,根据用户的选择需要有不同的处理,具体表现可以看下图: 本文并不关心权限适配的原理,原理可以参 ...

  4. android 6.0 短信权限,Android6.0权限适配

    Code4Android .jpg 前言 现在谈论Android权限适配可能有点没必要,因为网上关于权限适配的文章很多,搜一下Android6.0权限适配关键词能搜到一堆文章,而且很多写的还很不错.不 ...

  5. android 6.0 数据库权限,Android超清晰6.0权限申请AndPermission

    Android超清晰6.0权限申请AndPermission的具体实现代码,供大家参考,具体内容如下 前言 这是我经常使用的框架,原因: 1.思路清晰 2.实现方便 开始 准备工作 导包 compil ...

  6. Android 6.0 权限申请辅助 ----PermissionsHelper

    Android 6.0 权限申请辅助 ----PermissionsHelper 项目地址:https://github.com/didikee/PermissionsHelper Android 的 ...

  7. android拍照所需的权限,eclipse --- Android拍照,相册选择图片以及Android6.0权限管理...

    [实例简介] eclipse --- Android拍照,相册选择图片以及Android6.0权限管理 [实例截图] [核心代码] camreainandroidm └── camreainandro ...

  8. Android6.0权限大全和权限分类

    自从出了Android6.0权限管理之后,再也不能像以前那样粘贴复制了,必须认识权限了,所以总结一下方便以后自己使用. 一.所有权限 访问登记属性 android.permission.ACCESS_ ...

  9. Android6.0动态申请SD卡读写的权限

    有些设备不能在本地写文件的解决方法如下 : Android6.0之后系统对权限的管理更加严格了,不但要在AndroidManifest中添加,还要在应用运行的时候动态申请.下面是动态申请SD卡读写的权 ...

最新文章

  1. Leetode算法刷题宝典.pdf
  2. 完美解决小程序一维数组循环渲染列表不够用问题
  3. [javaSE] java获取文件列表
  4. bochs调试linux内核学习4 - bochs配置文件的$BXSHARE变量、bochs的System BIOS must end at 0xfffff错误、运行内核0.00版本
  5. 通过ddmlib杀死某个android进程的方法
  6. Linux服务器rsync自动备份
  7. oracle32位11g中文乱码,win7 64位系统 Oracle32bit + PL/SQL访问Orale服务,Oracle 11g的安装,中文乱码问题的解决...
  8. 299. 猜数字游戏
  9. Javascript 基础笔记
  10. 嵌入式Linux入门3:Linux服务器搭建
  11. 学计算机是为了什么演讲稿,求大学计算机协会职位申请书和演讲稿
  12. 使用 luajit的ffi 调用libcurl
  13. oracle分区键使用教程,Oracle表分区学习笔记
  14. 【OCR技术】字符识别技术总览
  15. 033-生产机器扩容
  16. c语言横坐标加一怎么表示,C语言 打印一个用字符表示的菱形或正(倒)三角形...
  17. SQL Server导出导入数据方法
  18. Laravel User Agent 轻松识别客户端(微信)信息(2019版)
  19. 腾讯推出移动端动画组件PAG,释放设计生产力!
  20. iOS13beta2版描述文件,修复了,修复了,修复了,可以用描述文件更新了

热门文章

  1. android平板交互,安卓平板就应该如此,华为MatePad Pro 交互体验
  2. 均衡教派服务器维护,LOL十大最坑大区盘点 LOL最坑服务器 均衡教派坐实榜首
  3. VISIO2010界面介绍
  4. pytorch 变对角矩阵_Pytorch-Tensor基本操作
  5. python定时器库_Python定时器完整示例 python定时器用法举例
  6. 看了就会的VScode给C++的配置编译环境(Visual Studio Code)
  7. C语言非常重要的细节(知道一点更新一点)
  8. Bash数组变量的赋值
  9. 使用FgSegNet进行前景图像分割
  10. 为何去银行存款的人越来越少,但是银行的存款却在增加?