Android 权限管理(持续整理)

1. Android 6.0之后,APP可以直接安装,运行时再询问用户授予相关权限,此时系统弹出一个对话框,(这个对话框不能由开发者定制)

同时用户也可以在手机的“设置”中对于某个App进行权限管理

注意:这个对话框不是系统自动弹出,而是开发者在调用必须用户授权的方法时,在调用之前检查(如果有授权直接调用)并请求用户权限,否则可能因没有授权而直接程序崩溃

重点:在某一个需要用户权限的地方检查并请求用户权限,否则程序崩溃

2. 权限分类

是否涉及用户隐私,权限分为两类:第一类不涉及隐私,在Manifest声明即可,比如蓝牙,网络,NFC

第二类涉及隐私:SD卡读写,联系人,短信等

3. 权限组的概念

所有危险的Android系统权限属于权限组

4. 运行时不需要授权的权限:

第一类权限,不涉及用户隐私的权限,在Manifest声明即可;而且,安装及获得授权,用户不能取消,除非卸载。

5. 运行时需要授权的权限

条件:App运行在Android 6.0(API 23)或者更高级别的系统中,而且targetSdkVersion>=23, 系统将自动采用动态权限权利策略

注意事项:

(1)此类权限必须在Manifest中声明,从而申请时提示用户获得授权。否则,直接回调开发者权限而被拒绝

(2)申请某一个权限、系统弹出的Dialog是对于整个权限组的说明

(3)因为(2)所以,同一个权限组的某一个权限被授权,同组其他权限自动获得授权

6. 低于Android 6.0的系统,仍采用旧的权限管理策略:

(1)安装时请求用户授权相关权限

(2)获得权限组的授权,而不是某一个权限的授权

7. 资料储备

github:https://github.com/yanzhenjie/AndPermission

https://github.com/yanzhenjie/AndPermission/blob/master/README-CN.md

8. 待扩展:
动态权限管理策略:实践,demo

上一篇:Oracle知识点总结2


下一篇:centos7系统下 docker 环境搭建