安卓6.0动态授权

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓6.0动态授权相关的知识,希望对你有一定的参考价值。


android 5.1 (API level 22) 及其以下版本上,系统在APP安装时要求用户授权所有Manifest申请的权限,否则APP不能安装,并且安装后权限也撤销不了。

http://7jpolu.com1.z0.glb.clouddn.com/pre-marshmallow-permission.jpg 


而在Android 6.0(Marshmallow_棉花糖)及其以上版本上,系统在APP安装时授权所有普通权限,危险权限需要在应用运行使用时(比如当用户按下”相机拍照“按钮后)动态让用户授权。

http://7jpolu.com1.z0.glb.clouddn.com/marshmallow-permission.png 

http://ww1.sinaimg.cn/large/6a195423jw1ezwtttfjp1j20u01hc0vr.jpg 

http://ww2.sinaimg.cn/large/6a195423jw1ezxulzbeu2j20iq0ggt9y.jpg 


6.0系统就对权限进行了分类,一般为下述几类:

①正常(Normal Protection)权限

  正常权限对用户隐私没有较大影响或者不会打来安全问题;安装后就赋予这些权限,不需要显示提醒用户,用户也不能取消这些权限。

  正常权限主要是关于网络、蓝牙、时区、快捷方式等方面,只要在Manifest.xml指定了这些权限,就会默认被授予,并且不能撤销。


②危险(Dangerous)权限

  危险权限是运行时权限主要处理的对象,这些权限可能引起隐私问题或者影响其他程序运行。

  Android6.0+需要在manifest中申请,并且通过发送Intent让用户在设置界面进行勾选。

  如果将targetSdkVersion设置低于23,那么在6.0的系统上不会为这个应用开启运行时权限机制,即按照以前的方式处理。


 一个组内某个权限被允许,该组的其他权限也是被允许的。举一个例子,如果你的应用授权了读取联系人的权限,那么你的应用也是被赋予了写入联系人的权限,因为读取联系人和写入联系人这两个权限都属于联系人权限分组。


③特殊(Particular)权限

  特殊权限就是一些特别敏感的权限,一般不会应用申请,主要由两个

  SYSTEM_ALERT_WINDOW,设置悬浮窗,进行一些黑科技

  WRITE_SETTINGS 修改系统设置,如更改手机来电铃声


④其他权限(一般很少用到)


以上是关于安卓6.0动态授权的主要内容,如果未能解决你的问题,请参考以下文章

Android基础——适配安卓6.0新权限系统

安卓6.0到9.0适配

Google Maps API (9757):授权失败

Android 6.0运行时权限简析及最佳实践

.NET 6.0中使用Identity框架实现JWT身份认证与授权

.NET 6.0中使用Identity框架实现JWT身份认证与授权