标签:安卓 动态授权
在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 修改系统设置,如更改手机来电铃声
④其他权限(一般很少用到)
标签:安卓 动态授权
原文地址:http://playkid.blog.51cto.com/10040188/1982710