EasyPermission Android 6.0 最简洁的权限框架
来源:互联网 发布:他趣聊天软件 编辑:程序博客网 时间:2024/06/08 03:13
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<String> deniedPerms; // 被拒绝但未勾选不再询问的权限 public final List<String> showRationalePerms; // 被拒绝且勾选不再询问的权限 public final List<String> neverAskedPerms; // 是否全部权限都是被拒绝且不再询问 public final boolean allNeverAsked; DeniedResult(@NonNull List<String> deniedPerms, @NonNull List<String> 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
阅读全文
0 0
- EasyPermission Android 6.0 最简洁的权限框架
- Android使用easypermission动态获取权限
- Google官方6.0权限申请 EasyPermission
- Android M Android6.0 权限管理 EasyPermission Demo
- 使用 easypermission 来简化代码,实现Android动态权限申请
- Android EasyPermission优雅地实现动态权限申请
- Android 6.0 运行时权限简洁封装
- Android 6.0 运行时权限简洁封装
- android最简洁的定时器源代码
- 获取Android联系人最简洁的代码
- EasyPermission完美解决Android6.0权限
- Android最简洁反编译apk
- Android最简洁的自动换行布局组件
- ONE-Kotlin 致力于打造最简洁的Android项目
- 重新封装BaseAdapter,打造最简洁框架
- 最简洁的最大公约数算法
- 最简洁的单链表逆序
- 最简洁的八皇后
- lib和dll
- 多线程时Autowired自动注入问题
- linux bash 函数
- Linux下安装SVN以及相关的配置,并在MyEclipse中整合SVN相关的插件
- Linux结束其他ssh登录用户
- EasyPermission Android 6.0 最简洁的权限框架
- EDA To Prediction(DieTanic)
- Linux 交换内存处理 CDH 交换内存报错
- 这可能是最好的RxJava 2.x 入门教程(二)
- 解决伪分布式hadoop部署hive后,无法通过beeline连接
- 算法题:lintcode#56 两数之和(java)
- 6.3
- Java对象的访问定位
- folium遇到的坑 不显示颜色