Android Study 之聊聊权限那点事儿~别怕,就是干~!!!

LZ-Says:
江湖上流传着这样一首诗:
床前明月光,我会写代码;千山鸟飞绝,我会写代码;
松下问童子,我会写代码;春眠不觉晓,我会写代码;
白日依山尽,我会写代码;红豆生南国,我会写代码;
锄禾日当午,我会写代码;欲穷千里目,我会写代码 。

Android Study 之聊聊权限那点事儿~别怕,就是干~!!!

文章插图
不得不说,开发这一行,是真心不容易,要学习技术,要学习调整心态,要学会和各种无奈心平气和沟通,不容易~
今天突然有点想家了,时间过得真快,就感觉一切好像在昨天,不过回头看,一切不过尔尔~
前言
以前对于这边权限真的是一窍不通,偶尔还忘记写这个东西,静下心,真的该好好想想这东西到底是什么情况 。
今天写个一个小demo,不出意料 。感觉有点无奈 。大家一起回顾下这个例子,之后我们针对这个例子,开启今天权限之旅~
Study(权限有关知识学习) 1.小例子开启权限之旅~
来个Demo瞅瞅
1.设置相机权限
uses- :name=”..”
2.设置兼容版本为23 此处忽略实际调用相机代码 。
minSdkVersion 9targetSdkVersion 23
关于版本号这块,特意为大家截个图,方便大家在查阅过程中记一下~
Android Study 之聊聊权限那点事儿~别怕,就是干~!!!

文章插图
来来来,我们运行看看会有什么结果发生
结果如下:
Android Study 之聊聊权限那点事儿~别怕,就是干~!!!

文章插图
查看异常如下:
Android Study 之聊聊权限那点事儿~别怕,就是干~!!!

文章插图
3.将兼容版本设置为21
minSdkVersion 9targetSdkVersion 21
接下来再看看结果:
Android Study 之聊聊权限那点事儿~别怕,就是干~!!!

文章插图
看到这个,不知道大家有没有在想一个问题,为什么同样是调用相机这简单操作,在兼容 系统21以及23后运行结果会发生变化呢?
看看异常,看看问题,还是直接看看官方文档看看这是什么情况吧 。
2. 6.0新特性(只针对权限管理部分)
6.0(API 级别 23)除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更,而我们今天重点关注权限方面的处理 。
6.0引入了一种新的权限模式,也就是我们常说的“运行时动态申请权限” 。如今,用户可直接在运行时管理应用权限 。这种模式让用户能够更好地了解和控制权限,同时为应用开发者精简了安装和自动更新过程 。用户可为所安装的各个应用分别授予或撤销权限 。
如果应用在清单中列出正常权限(即不会对用户隐私或设备操作造成很大风险的权限),系统会自动授予这些权限 。如果应用在其清单中列出危险权限(即可能影响用户隐私或设备正常操作的权限),系统会要求用户明确授予这些权限 。发出请求的方式取决于系统版本,而系统版本是应用的目标,具体情况在下面分别进行说明:
?如果设备运行的是6.0(API 级别 23)或更高版本,并且应用的是 23 或更高版本,则应用在运行时向用户请求权限 。用户可随时调用权限,因此应用在每次运行时均需检查自身是否具备所需的权限;
?如果设备运行的是5.1(API 级别 22)或更低版本,并且应用的是 22 或更低版本,则系统会在用户安装应用时要求用户授予权限 。如果将新权限添加到更新的应用版本,系统会在用户更新应用时要求授予该权限 。用户一旦安装应用,撤销权限的唯一方式是卸载应用 。
3. 简单了解
通常,权限失效会导致被扔回应用 。但不能保证每个地方都是这样 。例如,() 方法在数据传递到每个接收者时会检查权限,在方法调用返回后,即使权限失效,我们也不会收到异常 。但在几乎所有情况下,权限失效会记入系统日志 。(排除某些特例)