Android 6.0 Marshmallow首次增加了执行时权限管理,这对用户来说,能够更好的了解、控 制 app 涉及到的权限。然而对开发人员来说却是一件比較蛋疼的事情。须要兼容适配,并保证程序功能的正常执行。
什么叫执行时权限管理呢?在Android 6.0以下的系统中,当我们在安装应用的时候,该应用就会提示我们这个应用所须要的权限,假设你要安装。那就必须允许赋予全部权限,可是假设不允许,那就仅仅能取消安装了,有点流氓。并且安装完后,你不能够收回这个权限。
而6.0就做到了执行时权限管理。即使安装的时候给了权限,也能够到系统设置里。去关闭该权限。
以下分几种情况来讲,由于执行时权限仅仅有在Android6.0及以上的手机版本号才有,所以这里仅仅考虑设备版本号大于6.0的手机。低版本号的手机在安装时就已经赋予了全部的权限。也不可能收回,就不考虑了,以下的情况仅仅分targetSdkVersion:
targetSDKVersion大于等于23的时候,那么权限是能够被回收(revoke)。这里还要分权限。google将权限分为两种,一种是normal permission,还有一种是dangerous permission。
normal permission是指与用户隐私无关的权限。能够理解为无关紧要的权限,比方说訪问网络的权限。对用户来说没什么关系。dangerous permission就是会涉及到用户隐私的权限。比如读取用户手机联系人、短信等等。假设是normal permission的话,那么在安装的时候就会给,并且不会开放接口让用户回收该权限。app会一直拥有该权限,所以不用考虑这样的类型的权限。假设是dangerous permission的话,在安