天天看点

简化Activity权限申请的方法

说明:

Android6.0以后,系统对权限的控制越来越严格,Google推出运行时权限,只有在需要权限的时候,才通知用户授权,而不是在安装的时候。

这可能会造成每个需要授权的地方都要进行处理,通常处理分为两部分,请求权限和处理授权结果。这将会是一项非常庞大的工作量。

能不能简化使用的方法呢?

本文介绍了两种简化方法,一种是官方的,一种是自己的处理。

方案1:官方 ​​Activity Result API​​

Google公司更新了开发库,使用 ​​Activity Result API​​接口可以简化操作

简化Activity权限申请的方法

例子中给处理使用方法,需要两句话进行请求。功能比较完备,标准。大致是这样

简化Activity权限申请的方法

方案2:使用继承类的方法

这个方法是定义一个回调接口,不关心哪些授权,哪些不授权,全部授权才算成功。只需要调用一句话

简化Activity权限申请的方法

接口定义如下: 

简化Activity权限申请的方法

怎么实现呢?

就是创建一个基类,把权限请求和响应放到基类中处理,结果回调给子类的调用函数。

比如我们的页面是这样的

public class MainActivity extends PermissionBaseActivity {

基类这样定义

简化Activity权限申请的方法

 处理权限请求结果

简化Activity权限申请的方法

总结:

对代码的优化的处理的方法有很多种,有些是官方的,有些是野路子,能处理问题就好了。后面介绍下,对于在fragment请求权限的处理,因为官方已经不支持fragment的onRequestPermissionsResult方法了。

参考:

​​Fragment  |  Android 开发者  |  Android Developers (google.cn)​​

关于: