一、适配Android 6.0

1、为什么要适配6.0呢?

因为Android 6.0推出了新的权限机制。在以前需要申请Android权限的时候,只需要在mainfest中申请所需要的权限即可,在安装的时候,默认会授予我们相应的权限。但是在6.0以后,权限不仅仅需要在mainfest中进行注册,而且还需要在用到的时候,动态地向用户进行申请。如果用户授予我们对应的权限了,才可以去走正常的逻辑,如果用户拒绝了我们的权限申请,那么需要做拒绝的权限处理。代码有一个较大的改动,所以重点讲解如何适配这个权限机制。

 

2、为什么要改变老的权限管理机制?

以前的权限管理机制是存在很多问题存在,尤其是安全方面的。比如需要一个游戏应用,需要申请读取短信的权限,在以前,用户为了玩儿这个游戏不得不同意这个权限,但是现在用户就可以动态地选择是否授予这个与短信无关的应用是否可以读取短信,这样对用户来说更加合理,对程序来说也更加健壮,减少了一些恶意程序。所以Android要改变它的权限管理机制,由以前的静态改为现在的动态授权。

3、可以不适配最新的权限管理机制吗?

不可以。为了程序的健壮性以及程序最新版本的适配,也要去适配最新的权限机制。从用户体验上来说,也需要进行适配,每次需要申请权限的时候,向用户申请一下,用户也会觉得更加安全。

4、不借助第三方库可以轻松适配吗?

完全可以

 

5、权限组

是在动态权限机制里新提出的概念,即一组相关的权限是放在组内的,组内一个权限被用户授权了权限,组内其它的权限也默认被用户授予的权限。例如,读、写SD卡是在一个组内的,当用户授予了我们读sd卡的权限时,同时也就授予了我们写SD卡的权限。或者说当用户授予了我们写SD卡的权限,同时也就授予了我们读SD卡的权限。

 

6、

android封装存储类 安卓系统封装_android封装存储类

二、相关的API

1、

android封装存储类 安卓系统封装_Android_02

 

2、处理用户申请的请求结果

android封装存储类 安卓系统封装_android封装存储类_03

 

注:并不是所有的权限都需要向用户申请,需要申请的都是危险权限,比如camera、读取联系人、读取短信、以及读取SD卡等等可能影响到用户的隐私的权限,在系统中就被称为危险权限。但是像使用wifi、网络等权限是可以直接使用的。

三、动手适配新权限机制

1、权限判断

android封装存储类 安卓系统封装_Android_04

 

2、权限申请

android封装存储类 安卓系统封装_Android_05

3、权限请求回来后逻辑的处理

android封装存储类 安卓系统封装_父类_06

 

4、权限调用

android封装存储类 安卓系统封装_权限管理_07

 

5、复写父类中的方法

android封装存储类 安卓系统封装_android封装存储类_08