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