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 权限库。

Features

  • 良好的设计和可扩展性(个人觉得最区别于别的库的最主要原因)
  • 兼容到 8.0 所需要的相关特殊权限,并可以很好的进行扩展(未知来源、悬浮窗、系统设置修改、通知、通知渠道等权限的处理)
  • 支持 RationaleRender(向用户解释为什么申请权限)
  • 支持 SettingRender(当权限没有授权时,可以打开权限设置界面进行设置,并自动检测设置是否改变)
  • 更好的系统权限设置界面兼容性(尽量兼容不同的系统厂商的权限设置界面)
  • 6.0 以下权限支持(不建议,感觉没必要了)

HaloPermission 解惑(Why choose "HaloPermission")

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

Setup

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

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

额外配置说明:

  1. V7 依赖说明

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

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

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

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

Usage

查看详细使用

运行效果图

直接下载 demo 运行吧。。。 Demo 下载地址

缺陷说明

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

联系方式

QQ:862638161

Email:super_luo@163.com

如需交流,欢迎讨论

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools