简单的权限申请工具类

2018-12-19  本文已影响21人  佐以言

最近由于工作,需要对老项目进行项目改造,在改造过程中,项目使用的权限申请为PermissionsDispatcher,由于使用编译时注解原因,使用并不是很顺手(纯粹个人爱好,无其他原因)。
借助 Fragment 的易用性,结合之前分析过的架构组件源码,决定采用相似的方式通过 Fragment 进行权限的申请从而降低代码的复杂度。

权限检测

权限检测

简单封装了一下对权限的判断。

Fragment 中的权限申请

Fragment 中的权限申请

在 Fragment 中进行权限申请较为简单,与 Activity 中申请一致,主要就是提供了一个外部调用方法来进行权限申请。

权限申请的判断

对于宿主权限申请的判断

主要流程为以下几个步骤:

  1. 判断是否获取到该权限,若获取到或者被禁止获取则直接调用回调通知;
  2. 在被禁止的情况下首先尝试获取 PermissionFragment 实例,若没有则添加,包括则继续;
  3. 通过 PermissionFragment 进行权限获取并回调

在 Fragment 中获取权限方法类似,只是单单将 Activity 中的 SupportFragmentManager 替换为 Fragment 的 ChildFragmentManager 即可。

至此一个简单的权限申请工具类就完成了,较原有的 PermissionDispatcher 更简洁且不需要依赖注解等其余工作,且方便日后对权限申请的扩展。

上一篇下一篇

猜你喜欢

热点阅读