一句代碼搞定權(quán)限請求,從未如此簡單

這可能是使用最便捷的權(quán)限請求框架

Github傳送地址,歡迎Star

另外想對Android 6.0權(quán)限需要深入了解的,可以看這篇文章Android 6.0運(yùn)行權(quán)限解析

集成步驟

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

一句代碼搞定權(quán)限請求,從未如此簡單

點(diǎn)此查看完整的示例代碼

XXPermissions.with(this)
        //.constantRequest() //可設(shè)置被拒絕后繼續(xù)申請,直到用戶授權(quán)或者永久拒絕
        //.permission(Permission.SYSTEM_ALERT_WINDOW, Permission.REQUEST_INSTALL_PACKAGES) //支持請求6.0懸浮窗權(quán)限8.0請求安裝權(quán)限
        .permission(Permission.Group.STORAGE, Permission.Group.CALENDAR) //不指定權(quán)限則自動獲取清單中的危險權(quán)限
        .request(new OnPermission() {

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

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

是否有這個權(quán)限

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

跳轉(zhuǎn)到設(shè)置頁面

XXPermissions.gotoPermissionSettings(this);

框架亮點(diǎn)

  • 簡潔易用,采用鏈?zhǔn)秸{(diào)用的方式,使用只需一句代碼

  • 支持單個權(quán)限、多個權(quán)限、單個權(quán)限組、多個權(quán)限組請求

  • 不指定權(quán)限則自動獲取清單文件上的危險權(quán)限進(jìn)行申請

  • 如果動態(tài)申請的權(quán)限沒有在清單文件中注冊會拋出異常

  • 支持大部分國產(chǎn)手機(jī)直接跳轉(zhuǎn)到具體的權(quán)限設(shè)置頁面

  • 可設(shè)置被拒絕后繼續(xù)申請,直到用戶授權(quán)或者永久拒絕

  • 支持請求6.0及以上的懸浮窗權(quán)限和8.0及以上的安裝權(quán)限

  • 本框架不依賴AppCompatSupport庫,兼容Eclipse和Studio

混淆規(guī)則

-dontwarn com.hjq.permissions.**

常見問題

我們都知道,如果用戶全部授予只會調(diào)用hasPermission方法,如果用戶全部拒絕只會調(diào)用noPermission方法。

但是還有一種情況,如果在請求多種權(quán)限的情況下,這些權(quán)限不是被全部授予或者全部拒絕了,而是部分授權(quán)部分拒絕這種情況,框架會如何處理回調(diào)呢?

框架會先調(diào)用noPermission方法,再調(diào)用hasPermission方法。其中我們可以通過hasPermission方法中的isAll參數(shù)來判斷權(quán)限是否全部授予了。如果想知道回調(diào)中的某個權(quán)限是否被授權(quán)或者拒絕,可以調(diào)用List集合類中的contains(Permission.XXX)方法來判斷這個集合中是否包含了這個權(quán)限。

來自一位小白用戶的心聲

雖然行為放蕩語言粗曠外表淫蕩,但是他的內(nèi)心,是純潔的

Android 技術(shù)討論 Q 群:10047167

最后記得點(diǎn)贊 + Star

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務(wù) 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,205評論 1 180
  • 高山 隱去了陽光 路燈 在黑夜里畫了條長廊 寒風(fēng) 驅(qū)散燈光 灑滿了整個街道 挺拔的樹 伸長了枝干 想要抓住落葉 樹...
    又一林閱讀 214評論 1 2
  • 問題,怎樣即堅持自我,又不把別人趕走?讓一切流經(jīng)我的內(nèi)心? 見,一個小男孩在臺上唱歌,跑調(diào)實(shí)在太離譜,...
    米睿媽媽閱讀 475評論 1 1
  • 我最愛的人叫路藝,其次是寶貝你 昨晚發(fā)生的一切不是我在做夢吧?我真的好害怕發(fā)生的一切只是自己做了一個夢...
    阿旋閱讀 263評論 2 1

友情鏈接更多精彩內(nèi)容