一、Android 6.0以前的权限机制
为了保护用户的安全与隐私,Android从第一个版本开始就提出了权限机制。
当编程时,会存在一些功能需要访问用户的信息与隐私等问题。如因为访问系统的网络状态以及监听开机广播等涉及到用户设备的安全性。此时必须在AndroidManifest.xml文件中加入权限声明:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
这样做有两方面的优点:
1、在用户低于Android 6.0系统的设备上安装程序时,Android安装界面会提示该程序一共申请了哪些权限,从而可以决定是否安装该程序。
2、用户可以随时在应用程序管理界面查看一个程序的权限申请情况,防治应用程序出现各种权限滥用。
此时,仍然存在一些问题,一些用户常用的软件仍然存在滥用现象,这些软件在安装时不管程序是否用得到,反正先把权限申请了再说,这时用户如果不同意某个权限的使用时,就无法再使用该程序。
二、Android 6.0以后的运行时权限机制
Android的开发团队意识到这个问题时,在Android 6.0以后加入了运行时权限机制。此时,用户不需要在安装软件时一次性授权所有申请的权限,而是在软件使用过程中在对某一项权限申请时进行授权。
Android现在将权限分为两类:
普通权限:指那些不会直接威胁到用户安全和隐私的权限,对于这部分权限申请,系统会自动帮我们授权,不用用户在去手动操作,与Android 6.0之前保持一致,只需在AndroidManifest.xml文件中加入权限声明即可。
危险权限:指那些可能会触及用户隐私或者对设备安全性造成影响的权限