Android 6.0动态权限申请

Android 6.0动态权限申请

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

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

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

概述

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

权限分类

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

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

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

《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()方法,向其传递用户响应,处理对应的场景。

处理流程思维导图

《Android 6.0动态权限申请》

RxPermissions

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

    原文作者:Ciruy
    原文地址: https://blog.csdn.net/qq_31433709/article/details/88425183
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞