2017-01-25-写在腊月28,纪念我的第一个开源库的诞生

Posted by 夏敏的博客 on January 25, 2017

今天的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:PermissionTools:1.4'
    }

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

作者:Anderson大码渣,欢迎关注我的简书: Anderson大码渣