简单的权限申请工具类
2018-12-19 本文已影响21人
佐以言
最近由于工作,需要对老项目进行项目改造,在改造过程中,项目使用的权限申请为PermissionsDispatcher,由于使用编译时注解原因,使用并不是很顺手(纯粹个人爱好,无其他原因)。
借助 Fragment 的易用性,结合之前分析过的架构组件源码,决定采用相似的方式通过 Fragment 进行权限的申请从而降低代码的复杂度。
权限检测
权限检测简单封装了一下对权限的判断。
Fragment 中的权限申请
Fragment 中的权限申请在 Fragment 中进行权限申请较为简单,与 Activity 中申请一致,主要就是提供了一个外部调用方法来进行权限申请。
权限申请的判断
对于宿主权限申请的判断主要流程为以下几个步骤:
- 判断是否获取到该权限,若获取到或者被禁止获取则直接调用回调通知;
- 在被禁止的情况下首先尝试获取 PermissionFragment 实例,若没有则添加,包括则继续;
- 通过 PermissionFragment 进行权限获取并回调
在 Fragment 中获取权限方法类似,只是单单将 Activity 中的 SupportFragmentManager 替换为 Fragment 的 ChildFragmentManager 即可。
完
至此一个简单的权限申请工具类就完成了,较原有的 PermissionDispatcher
更简洁且不需要依赖注解等其余工作,且方便日后对权限申请的扩展。