EasyPermission

一款非常简洁,依赖很少的权限请求框架。不依赖第三方类库,如RxJava,不依赖运行时或编译时注解,无须在Activity和Fragment发起请求和接收返回。核心代码只有5个类,并且适配了小米 AppOps 权限。

Dependencies

  • Gradle
    compile 'com.xcheng:easypermission:1.0.1'

UaseAge

  • 请求单个权限
 EasyPermission.with(activty)                      .permissions(Manifest.permission.CAMERA)                      .request(12, new OnRequestCallback() {                          @Override                          public void onAllowed() {                              // request allowed                          }                          @Override                          public void onRefused(DeniedResult deniedResult) {                              // request denied                          }                      });
  • 请求多个权限
 EasyPermission.with(activty)                      .permissions(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)                      .request(12, new OnRequestCallback() {                          @Override                          public void onAllowed() {                              // request allowed                          }                          @Override                          public void onRefused(DeniedResult deniedResult) {                              // request denied                          }                      });
  • 处理权限回调
EasyPermission.with(activty)                      .permissions(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)                      .request(12, new OnRequestCallback() {                          @Override                          public void onAllowed() {                              // request allowed                          }                          @Override                          public void onRefused(DeniedResult deniedResult) {                              if (deniedResult.allNeverAsked) {                              } else {                              }                          }                      });
  • DeniedResult解析
public final class DeniedResult {          // 所有被拒绝的权限          public final List deniedPerms;          // 被拒绝但未勾选不再询问的权限          public final List showRationalePerms;          // 被拒绝且勾选不再询问的权限          public final List neverAskedPerms;          // 是否全部权限都是被拒绝且不再询问          public final boolean allNeverAsked;          DeniedResult(@NonNull List deniedPerms, @NonNull List showRationalePerms) {              this.deniedPerms = deniedPerms;              this.showRationalePerms = showRationalePerms;              this.allNeverAsked = showRationalePerms.isEmpty();              //处理被完全拒绝的权限              neverAskedPerms = new ArrayList<>();              for (String permission : deniedPerms) {                  //rationales 不包含 deniedPermissions 的就是完全被拒绝的                  if (!showRationalePerms.contains(permission)) {                      neverAskedPerms.add(permission);                  }              }          }      }

EasyPermisson大大简化了android的权限请求流程,增强了代码的可读性和连续性。
EasyPermission github地址 欢迎大家提疑问和bug

更多相关文章

  1. Android(安卓)获取手机联系人列表
  2. android Xutils Http模块分析
  3. Android-Android(安卓)10 创建不了文件夹
  4. 【Android笔记】执行命令行语句
  5. 一些安卓的基本权限 清单配置文件
  6. Android中进行https请求信任证书问题(效率解决,小白适用)
  7. Android(安卓)6.0 构建更高质量的应用
  8. Android中startActivity的使用----请求码与结果码的意义
  9. android静态广播添加权限

随机推荐

  1. Android沉浸式状态栏设计的实例代码
  2. Android(安卓)音视频开发(五) -- 使用 Me
  3. Binder通信机制
  4. android-实现黑名单拦截
  5. GreenDao 问题集合
  6. 游戏开发学习路线规划(整理自网络)
  7. android Dialog去掉黑色的背景和边框
  8. showDividers属性和showAsAction属性
  9. Android周报第三期
  10. 自定义栈管理android的Activity