目前最流行的运行时权限请求框架

您所在的位置:网站首页 Android运行 目前最流行的运行时权限请求框架

目前最流行的运行时权限请求框架

2024-01-20 09:34| 来源: 网络整理| 查看: 265

目前最流行的运行时权限请求框架PermissionsDispatcher、RxPermissions和easypermissions的对比

Android6.0版本的一个重大改动就是增加了运行时权限(动态权限):一些危险的权限不单止要在AndroidMainifest文件声明,还要在运行的时候使用代码来申请,让用户同意才进行授权。

由于Android自带的API使用起来(怎么使用就不写了,网上很多)比较麻烦,所以网上出现了一大堆简化这个过程的开源库,这里介绍目前最流行的三个开源库(GitHub上Star最多)PermissionsDispatcher、RxPermissions和easypermissions进行体验并对比他们的用法,了解一下这三个库的功能,方便做出选择。

这里检查权限的方法我采用了一个工具类封装(由于PermissionsDispatcher、RxPermissions都没带有单纯检查权限的功能,只有easypermissions有,这里用一个工具类封装一下检查权限的方法,返回我想要的字符串):

public class PermissionsLogUtils { private static StringBuffer logStringBuffer = new StringBuffer(); // 查看权限是否已申请 public static String checkPermissions(Context context,String... permissions) { logStringBuffer.delete(0,logStringBuffer.length()); for (String permission : permissions) { logStringBuffer.append(permission); logStringBuffer.append(" is applied? \n "); logStringBuffer.append(isAppliedPermission(context,permission)); logStringBuffer.append("\n\n"); } return logStringBuffer.toString(); } //使用EasyPermissions查看权限是否已申请 public static String easyCheckPermissions(Context context,String ... permissions) { logStringBuffer.delete(0,logStringBuffer.length()); for (String permission : permissions) { logStringBuffer.append(permission); logStringBuffer.append(" is applied? \n "); logStringBuffer.append(EasyPermissions.hasPermissions(context,permission)); logStringBuffer.append("\n\n"); } return logStringBuffer.toString(); } // 查看权限是否已申请 private static boolean isAppliedPermission(Context context,String permission) { return context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED; } }

GitHub地址:https://github.com/hotchemi/PermissionsDispatcher

GitHub地址:https://github.com/googlesamples/easypermissions

GitHub地址:https://github.com/tbruyelle/RxPermissions

共同点 三者都简化了Android6.0申请运行时权限的流程,比使用Android自带的API方便很多,可扩展性高。

不同点

功能PermissionsDispatchereasypermissionsRxPermissions单独检查权限功能无有无申请权限前提示操作有,可以自定义操作,弹出Dialog、Toast、SnackBar等等都行有,而且定制了Dialog无,需要自己实现不再提示时的处理操作有有,而且可以使用Dialog让用户选择跳到APP设置界面有一次申请多个权限时,对单个失败的权限处理操作无无有结合RxJava无无有不能把方法私有有无无

另有2个第三方权限申请库,star比上面3个少,推荐用上面3个。 https://github.com/getActivity/XXPermissions https://github.com/yanzhenjie/AndPermission



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3