Android 6.0动态权限申请

特别感谢: https://www.jianshu.com/p/2fe4fb3e8ce0
本文是在该文的基础上添加了类似自己的读后感才完成的。

我并不希望成为白求恩一样的人,如果我写的东西对你有用,那是我最大的荣幸,但是如果不是,请抱有一丝理解,因为我写博客的最终目的只是为了记录自己生活中的点点滴滴,仅此而已,当然,我欢迎建议,我只是无视无脑的喷子而已。

另外,今后的博客将都会附上思维导图,我个人是不太喜欢规范的= =,所以如果导图画的非常不规范,也请你能够谅解,我完全是按照更加便于自己整理逻辑为前提来画思维导图的,写博客的时候参考的网站链接也会放在思维导图中。

概述

android 6.0引入了权限申请机制,将所有的权限分成了正常权限和危险权限。应用的相关功能每次再使用危险权限是需要动态的申请并的到用户的授权才能使用。

权限分类

系统权限分为两类:正常权限和危险权限。

– 正常权限不会直接给用户隐私带来风险。只要再配置文件中正常列出想要的这类权限,系统将会自动地赋予应用这类权限,并不会提示出相应的提示,不然不是累死,就现在这样几个权限都烦的要死,要是十几二十个,真的不是让人活了。

– 危险权限会授予应用访问用户机密数据的权限,(说说用户还有所谓的隐私权,其实只是意思意思),如果你列出了危险权限,用户必须明确批准你的应用使用这些权限,也就是那些烦的要死的弹出确认权限窗口。(我好开心哦,被赋予了拥有保护自己隐私的权力呢= =)

重要方法

– ContextCompat.checkSelfPermission
检查应用是否具有某个危险权限。如果应用具有此权限,方法将返回PackageManage.PERMISSION_GRANTED,并且应用可以继续操作。如果应用不具有此权限,方法将返回PackageManager.PERMISSION_DENIED,且应用必须明确向用户要求权限,

– ActivityCompat.requestPermissions
应用可以通过这个方法动态申请权限,调用后会弹出一个对话框提示用户授权所申请的权限。

– ActivityCompat.shouldShowRequestPermissionRational
如果应用之前请求过此权限但是用户拒绝了请求,此方法返回true。如果用户再过去拒绝了权限请求,并在权限请求系统对话框中选择了Don’t ask again选项,此方法将返回false。如果设备规范进制应用具有改权限,此方法也会返回false。
相信大多数人都不会和我一样,看到这里还不清楚为什么sholuldShowRequestPermissionRational方法到底是什么作用吧= =,这个方法的作用就是为了在需要提示用户是否需要权限的时候进行进一步的判定,如果之前用户已经选择了“别TM再给我报这个弹窗了”,那么这个方法就会返回false,如果没有点击那个选择框,这个方法会返回true,那么这个弹窗在每次执行checkSelfPermission方法的时候都会不厌其烦的弹出来,用户体验极差,当然,一旦这个方法返回false时,在应用内将很难再获取对应的权限了,只能到手机设置中手动再赋予对应的权限。
个人感觉这是最重要的抗麻烦的方法= =!!!!!

– onRequestPermissionsResult
当应用请求权限时,系统将向用户显示一个对话框。当用户相应时,系统将调用onRequestPermissionResult()方法,向其传递用户响应,处理对应的场景。

处理流程思维导图

RxPermissions

官方提供的方法在一次申请多个权限的时候代码逻辑写起来比较繁琐,于是有了RxPermissions。RxPermissions是使用Rxjava封装的第三方的权限申请库,他的特点是借助Rxjava的特性简化了权限申请的代码逻辑,使代码看起来简洁易读。具体的使用方法可以参看《RxPermissions获取运行时权限》,里面写的比较详细。

Android 6.0动态权限申请相关推荐

  1. [Android] Android 6.0 动态权限申请看完就会写

    Android 6.0 动态权限申请看完就会写 文章目录 Android 6.0 动态权限申请看完就会写 1. 起 2. 权限 3. 四个方法 4. 使用 5. 总结 1. 起 Android 的动态 ...

  2. Android 6.0 动态权限申请

    1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...

  3. Android 6.0 动态权限申请简单简洁优雅的处理方式

    Android M 或以上的设备,在使用涉及隐私的安全权限时,需要动态申请,虽然不难,但写下来代码工作量也不少,而且几乎每个应用都需要用到.所以一直在探索一个要足够简单简洁优雅的处理方式,强迫症的精神 ...

  4. android 6.0权限库,Android 6.0动态权限适配

    前言 最近项目发现比较多的问题是关于Android 6.0的问题,APP安装之后,在Android 6.0之后的系统,点击直接奔溃打不开,这是为什么昵?这就是Android 6.0以上的系统引入运行时 ...

  5. android 6.0动态权限问题

    最近,我发现手机的6.0权限在小米手机上存在问题,我在网上搜了很多的代码,都没有解决这个问题,所以这里记录一下自己的android 6.0权限的解决代码,如果有问题,大家可以在网上自己在找找代码去解决 ...

  6. Android 7.0动态权限大总结

    本文讲的是Android 7.0动态权限大总结,应公司项目需求,做了下Android 7.0适配.对于我们程序员,适配7.0主要就是对手机本地文件的Uri做转换处理.注意红色字体,意思也就是说对于ht ...

  7. Android 6.0动态权限(转)

    转自:http://blog.csdn.net/uana_777/article/details/54136255 Part One 权限区分  Android 6.0 为了保护用户隐私,将一些权限的 ...

  8. 最容易理解的Android6.0动态权限申请教程

    1.前言 这已经是N年前的知识点了,但是我一直以来都有点逃避学习这个,而且印象中很麻烦,后来也不间断有学习过一点,但是一直没认真去用过,所以对这个android6.0的动态权限申请一直是不清楚的状态, ...

  9. Android 6.0 动态权限实战(一)------ Nexus7二代(WIFI版)4.4升级6.0-附带纯净刷机ROM福利!

    最近一直忙于一个百万+客户的app客户端与Android4.4定制车机和车载的系统订单,都好久没有更新博客了, 今天一上来就 给大家发一个福利!哈哈,不要谢我,请叫我雷锋!这个博客我将分1-3篇来介绍 ...

最新文章

  1. Mybatis学习记录-使用问题总结之一DISTINCT
  2. 喜闻乐见的const int *p、int* const p、const int* const p
  3. Python--1 初识
  4. 大公司的前端开发地址
  5. faster-rcnn移植过程中出现错误
  6. elementui el-table根据分页显示表格序号
  7. FPGA机器学习之stanford机器学习第三堂1
  8. Java中的Map、Set、List各种方式遍历
  9. mongodb存入mysql_存储到Mysql、mongoDB数据库
  10. python快速入门教程-Python快速入门
  11. Latex入门----从提纲开始
  12. 钉钉发起审批流程分析
  13. 借助AI人工智能,这家公司能让孩子快乐学琴吗?
  14. 使用Opencv2+Pyqt5实现人脸识别视频马赛克
  15. 全球及中国板材制造行业销售前景与产销规模分析报告2022-2028年
  16. bsc链发行代币遇到了问题
  17. hdu 2094 “产生冠军“
  18. 嫦娥四号工程总共投入是多少?国家航天局回应
  19. 小米 9 SE 获取Root 和 安装Magisk
  20. Android小项目———— 冰炭不投de小计算器

热门文章

  1. c语言prime函数怎么用_n!函数用C语言其实可以这样!
  2. flask之url_for()函数解析
  3. 使用gcc的-finstrument-functions选项进行函数跟踪
  4. setsockopt
  5. mysql 同样字段的索引_MySQL表中具有相同字段的两个索引
  6. python具备哪些特点_Python具备那些特点?
  7. 简单android音乐播放器课程设计,android音乐播放器课程设计报告.doc
  8. docker linux界面版,centos 7 Docker使用Portainer搭建可视化界面
  9. 计算机应用基础课程建设规划,计算机应用基础课程建设方案(6页)-原创力文档...
  10. anaconda tensorflow 2.3_TensorFlow 速成 | 统计师的Python日记 第13天