LEasyPremission

2021-08-03  本文已影响0人  月影路西法

LEasyPremission

一款简单的权限框架

我的理念概述

我的理念的是能用一行代码解决的是,绝对不用两行
其实编写依赖库的目的就是将一个功能尽可能的完善
代码调用方便,简洁

LEasyPremission简书地址

优点

简洁易用:采用链式调用的方式,使用只需一句代码,其实是建造者模式链式调用

集成步骤

在项目根目录下的 build.gradle 文件中加入

buildscript {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

在项目 app 模块下的 build.gradle 文件中加入

android {
    // 支持 JDK 1.8
    compileOptions {
        targetCompatibility JavaVersion.VERSION_1_8
        sourceCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    // 权限请求框架
    implementation 'com.github.freedomangelly:LEasyPremission:0.0.0.1'
}

使用方法

LEasyPermissions.with(this)
        // 申请安装包权限
        //.permission(Permission.REQUEST_INSTALL_PACKAGES)
        // 申请悬浮窗权限
        //.permission(Permission.SYSTEM_ALERT_WINDOW)
        // 申请通知栏权限
        //.permission(Permission.NOTIFICATION_SERVICE)
        // 申请系统设置权限
        //.permission(Permission.WRITE_SETTINGS)
        // 申请单个权限
        .permission(Permission.RECORD_AUDIO)
        // 申请多个权限
        .permission(Permission.Group.CALENDAR)
        .request(new OnPermissionCallback() {

            @Override
            public void onGranted(List<String> permissions, boolean all) {
                if (all) {
                   LogUtil.i("权限成功");
                } else {
                    LogUtil.i("获取部分权限成功,但部分权限未正常授予");
                }
            }

            @Override
            public void onDenied(List<String> permissions, boolean never) {
                if (never) {
                    LogUtil.i("被永久拒绝授权,请手动授予录音和日历权限");
                    // 如果是被永久拒绝就跳转到应用权限系统设置页面
                    LEasyPermissions.startPermissionActivity(MainActivity.this, permissions);
                } else {
                   LogUtil.i("获取录音和日历权限失败");
                }
            }
        });

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == LEasyPermissions.REQUEST_CODE) {
            LogUtil.i("检测到你刚刚从权限设置界面返回回来");
        }
    }

上一篇下一篇

猜你喜欢

热点阅读