说明: Android6.0以后,系统对权限的控制越来越严格,Google推出运行时权限,只有在需要权限的时候,才通知用户授权,而不是在安装的时候。 这可能会造成每个需要授权的地方都要进行
说明:
Android6.0以后,系统对权限的控制越来越严格,Google推出运行时权限,只有在需要权限的时候,才通知用户授权,而不是在安装的时候。
这可能会造成每个需要授权的地方都要进行处理,通常处理分为两部分,请求权限和处理授权结果。这将会是一项非常庞大的工作量。
能不能简化使用的方法呢?
本文介绍了两种简化方法,一种是官方的,一种是自己的处理。
方案1:官方 Activity Result API
Google公司更新了开发库,使用 Activity Result API接口可以简化操作
例子中给处理使用方法,需要两句话进行请求。功能比较完备,标准。大致是这样
方案2:使用继承类的方法
这个方法是定义一个回调接口,不关心哪些授权,哪些不授权,全部授权才算成功。只需要调用一句话
接口定义如下:
怎么实现呢?
就是创建一个基类,把权限请求和响应放到基类中处理,结果回调给子类的调用函数。
比如我们的页面是这样的
public class MainActivity extends PermissionBaseActivity {
基类这样定义
处理权限请求结果
总结:
对代码的优化的处理的方法有很多种,有些是官方的,有些是野路子,能处理问题就好了。后面介绍下,对于在fragment请求权限的处理,因为官方已经不支持fragment的onRequestPermissionsResult方法了。
参考:
Fragment | Android 开发者 | Android Developers (google.cn)
关于:
编者:李国帅
时间:2022-6-4