HaloPermission

Introduction: An Android permission library developed by Kotlin language with higher extensibility and compatibility.
More: Author   ReportBugs   
Tags:

Release GitHub license

An Android permission library developed by Kotlin language with higher extensibility and compatibility.

Kotlin 语言开发的 Android 权限库;提供更好的扩展性和兼容性支持。

HaloPermission 解惑(Why choose "HaloPermission")

您可能对 HaloPermission 有诸多疑问:已经有那么多成熟的权限处理框架,为什么要用这个?这个有什么值得使用的理由?为什么这个库的星星这么少?这库到底靠谱不靠谱?... 希望HaloPermission 解惑能够消除您心中的疑虑。

Features

  • 支持 RationaleRender
  • 支持 SettingRender(支持配置打开权限设置界面,并自动检测设置是否改变)
  • 更好的系统权限设置界面兼容性
  • 6.0 以下权限支持
  • 灵活简易的功能配置

Setup

在使用 HaloPermission 的 Module 的 build.gradle 中添加以下依赖:

    dependencies {
        //gradle 3.+以后不是使用'compile'方法,而是使用'implementation' or 'api'等方式
        compile('halo.android:permission:1.0.1-rc@aar'){
            //传递依赖
            transitive = true
        }
    }

额外配置说明:

  1. V7 依赖说明

    HaloPermission 依赖com.android.support:appcompat-v7:25.0.1包(本身也依赖 v4 包,但 v7 依赖 v4,所以引入 v7 即可),如果与您工程依赖的版本不一致,你可以排除 HaloPermission 的版本依赖。

     但是`appcompat-v7`的版本不能低于 24.1.+
    
         compile('halo.android:permission:1.0.1-rc@aar'){
             //传递依赖
             transitive = true
             //排除 appcompat-v7 依赖
             exclude group: 'com.android.support', module: 'appcompat-v7'
         }
    
  2. Kotlin 依赖说明(项目不支持 Kotlin 开发的童鞋可以忽略)

    HaloPermission 是基于org.jetbrains.kotlin:kotlin-stdlib:1.2.10开发的,如果您的工程也支持 Kotlin 开发,并且与 HaloPermission 版本不一致,您可以排除 HaloPermission 对kotlin-stdlib的依赖。 但是kotlin-stdlib的版本最好不能低于 1.2.10

         compile('halo.android:permission:1.0.1-rc@aar'){
             //传递依赖
             transitive = true
             //排除 kotlin-stdlib 依赖
             exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
         }
    

Usage

查看详细使用

运行效果图

由于常规的运行截图比较基础,这里只给出 RationaleRender 和 SettingRender 的运行截图

  • 包含 SettingRender 的效果

    image

  • 包含 RationaleRender 的效果

    image

发布记录

1.0.2-rc
  • 支持使用原始的上下文(用户当前界面)请求权限,使用方法查看详细使用第 6 点
1.0.1-rc
  • 以更合理的方式提供依赖传递
1.0-rc
  • 提供严格权限检查实现(通过对权限的具体使用判断权限是否可用)
  • 兼容 6.0 以下权限
0.9-rc
  • 支持 SettingRender
  • 支持 RationaleRender
  • 提供标准权限检查 Checker 实现
  • 提供 Activity 权限请求方式 Caller 实现

缺陷说明

对于 6.0 以下的权限处理,某些权限校验可能并不准确,这一部分稍后进一步说明原因。 不仅 HaloPermission 如此,大多数有名的框架也不能解决这些问题。但是这并不影响 app 的正常逻辑流程,因为在后续流程中你能够得到更具体的一些信息。

联系方式

QQ:862638161

Email:super_luo@163.com

如需交流,欢迎讨论

Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea