一句代码搞定权限请求,从未如此简单

这可能是使用最便捷的权限请求框架

Github传送地址,欢迎Star

另外想对Android 6.0权限需要深入了解的,可以看这篇文章Android 6.0运行权限解析

集成步骤

dependencies {
    implementation 'com.hjq:xxpermissions:5.2'
}

一句代码搞定权限请求,从未如此简单

点此查看完整的示例代码

XXPermissions.with(this)
        //.constantRequest() //可设置被拒绝后继续申请,直到用户授权或者永久拒绝
        //.permission(Permission.SYSTEM_ALERT_WINDOW, Permission.REQUEST_INSTALL_PACKAGES) //支持请求6.0悬浮窗权限8.0请求安装权限
        .permission(Permission.Group.STORAGE, Permission.Group.CALENDAR) //不指定权限则自动获取清单中的危险权限
        .request(new OnPermission() {

            @Override
            public void hasPermission(List<String> granted, boolean isAll) {
                
            }

            @Override
            public void noPermission(List<String> denied, boolean quick) {
                
            }
        });

是否有这个权限

if (XXPermissions.isHasPermission(this, Permission.Group.STORAGE)) {
    
}

跳转到设置页面

XXPermissions.gotoPermissionSettings(this);

框架亮点

  • 简洁易用,采用链式调用的方式,使用只需一句代码

  • 支持单个权限、多个权限、单个权限组、多个权限组请求

  • 不指定权限则自动获取清单文件上的危险权限进行申请

  • 如果动态申请的权限没有在清单文件中注册会抛出异常

  • 支持大部分国产手机直接跳转到具体的权限设置页面

  • 可设置被拒绝后继续申请,直到用户授权或者永久拒绝

  • 支持请求6.0及以上的悬浮窗权限和8.0及以上的安装权限

  • 本框架不依赖AppCompatSupport库,兼容Eclipse和Studio

混淆规则

-dontwarn com.hjq.permissions.**

常见问题

我们都知道,如果用户全部授予只会调用hasPermission方法,如果用户全部拒绝只会调用noPermission方法。

但是还有一种情况,如果在请求多种权限的情况下,这些权限不是被全部授予或者全部拒绝了,而是部分授权部分拒绝这种情况,框架会如何处理回调呢?

框架会先调用noPermission方法,再调用hasPermission方法。其中我们可以通过hasPermission方法中的isAll参数来判断权限是否全部授予了。如果想知道回调中的某个权限是否被授权或者拒绝,可以调用List集合类中的contains(Permission.XXX)方法来判断这个集合中是否包含了这个权限。

来自一位小白用户的心声

虽然行为放荡语言粗旷外表淫荡,但是他的内心,是纯洁的

Android 技术讨论 Q 群:10047167

最后记得点赞 + Star

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,118评论 25 709
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,744评论 1 180
  • 高山 隐去了阳光 路灯 在黑夜里画了条长廊 寒风 驱散灯光 洒满了整个街道 挺拔的树 伸长了枝干 想要抓住落叶 树...
    又一林阅读 209评论 1 2
  • 问题,怎样即坚持自我,又不把别人赶走?让一切流经我的内心? 见,一个小男孩在台上唱歌,跑调实在太离谱,...
    米睿妈妈阅读 427评论 1 1
  • 我最爱的人叫路艺,其次是宝贝你 昨晚发生的一切不是我在做梦吧?我真的好害怕发生的一切只是自己做了一个梦...
    阿旋阅读 245评论 2 1