今天的2017年1月25日,相信很多人都踏上了归途,而我明天才能回家,经过这两天的折腾,我的第一个开源库总算诞生了,写第一个库的时候,我知道自己水平不高,要写就得是实用的,于是写了一个每个人都需要的Android M的权限申请库。帮助程序简化权限申请流程,目前经过我测试,工作良好。
好了,我们来看看我们的权限申请库。
简介
权限库名为:PermissionTools
PermissionTools一个用于Android权限申请的工具库,不过必须是应用target版本为23或者更高时才能使用
引入
project’s build.gradle (工程下的 build.gradle)
1 2 3 4 5 6
| allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
|
module’s build.gradle (模块的build.gradle)
1 2 3
| dependencies { compile 'com.github.Jerey-Jobs:PermissionTools:1.4' }
|
Usage/用法
我们来看一下怎么使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| PermissionTools permissionTools; permissionTools = new PermissionTools.Builder(this) .setOnPermissionCallbacks(new PermissionCallbacks() { @Override public void onPermissionsGranted(int requestCode, List<String> perms) { Toast.makeText(MainActivity.this,"权限申请通过",Toast.LENGTH_SHORT).show(); } @Override public void onPermissionsDenied(int requestCode, List<String> perms) { Toast.makeText(MainActivity.this,"权限申请被拒绝",Toast.LENGTH_SHORT).show(); } }) .setRequestCode(111) .build(); permissionTools.requestPermissions(Manifest.permission.CAMERA);
|
and in onRequestPermissionsResult
1 2 3 4 5
| @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); permissionTools.onRequestPermissionsResult(requestCode,permissions,grantResults); }
|
是不是很简单,比我们调用系统的简单很多,虽然其实内部实现还是调的系统的。
实现
1 2 3 4 5 6 7 8 9 10 11
| 检查是否拥有权限-> 有权限 -> 回调权限申请成功 | 没有权限是否需要弹窗请求-> 不需要 -> 是否是被设置为永不提醒 | 需要弹窗请求,监听是否点击确认-> 未点击 -> 权限申请被拒绝 | 点击确认主动申请权限,回调结果onRequestPermissionsResult | 回调结果判断权限是否申请成功 -> 失败回调 | 成功回调
|
谢谢大家阅读,如有帮助,来个喜欢或者关注吧!
本文作者:Anderson/Jerey_Jobs
博客地址 : 夏敏的博客/Anderson大码渣/Jerey_Jobs
简书地址 : Anderson大码渣
CSDN地址 : Jerey_Jobs的专栏
github地址 : Jerey_Jobs