Android开发者必知必会的权限管理知识开发者必知必会的权限管理知识
导语
本文主要讲解了Android 权限管理方面几个点:
Android 权限背景知识;
权限检查及权限兼容;
跳转到app管理权限页面
一、Android 权限背景知识
提到Android 权限管理,业内人士都知道Google 在Android 6.0时提出了运行时权限管理机制,在Android 6.0之前,所申请的
权限只需要在AndroidManifest.xml列举就可以,从而容易导致一些安全隐患,因此,在Android 6.0 时,Google 为了更好的保
护用户隐私提出了新的权限管理机制(官网 :Working with System Permissions),同时将其分为两大类:
(1)Normal Permissions
Normal Permissions 一般不涉及用户隐私,是不需要用户进行授权的,比如手机震动、访问网络等;
(2)Dangerous Permission
Dangerous Permission一般是涉及到用户隐私的,需要用户进行授权(动态申请),比如读取SIM卡状态、访问通讯录、SD
卡读写等。
通过 adb shell pm list permissions -d -g 可以查看 Dangerous Permission (以权限组形式)
Dangerous Permission group
如上图所示 :Dangerous Permission 一般以 Permission group 形式存在,只要 Permission group中某一个 permission 被
Granted,则整个Permission group下的权限均被Granted (目前是这样,以后规则说不定会变)。
二、权限检查及权限兼容
本节主要介绍介绍如何进行权限检查及权限兼容,主要分为以下几类:
(1)targetSdkVersion>=23,终端设备是6.0(api 23)以上系统;
安装的时候不会获得权限,在运行时向用户申请对应权限。这部分权限检查比较简单,不涉及权限兼容,使用官方方案就可以
,使用 Context : : checkSelfPermisson ,建议使用 ContextCompat : : checkSelfPermisson 检查权限 即可 ,一般检查流程
如下:
1.判断是否有对应权限
( ContextCompat : : checkSelfPermisson )