RxPermissions動態(tài)權(quán)限

用基于Rxjava設(shè)置動態(tài)權(quán)限
RxPermissions GitHub地址

要使用此庫,您的minSdkVersion必須 > = 11

1.下載RxPermissions

在 build.gradle中 :

repositories {
    jcenter() //如果沒有就添加,有就不用添加了
}

dependencies {
    compile 'com.tbruyelle.rxpermissions:rxpermissions:0.9.3@aar'
}

2.支持Rxjava2

RxPermissions支持RxJava2,只需將包名稱更改為com.tbruyelle.rxpermissions2。

dependencies {
    compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar'
}

3.版本9

版本0.8或更早的版本獲得RxPermissions的方式為:

RxPermissions.getInstance(this) -> new RxPermissions(this);

從版本0.9開始RxPermissions類不再是單例。創(chuàng)建RxPermissions實例的方式為:

RxPermissions rxPermissions = new RxPermissions(this);

4.用法

  • 例如進(jìn)行相機權(quán)限的請求:
rxPermissions
    .request(Manifest.permission.CAMERA)
    .subscribe(granted -> {
        if (granted) { // Always true pre-M
           // 權(quán)限通過后執(zhí)行
        } else {
           // 拒絕權(quán)限后執(zhí)行
        }
    });
  • 進(jìn)行多個權(quán)限的請求:
rxPermissions
    .request(Manifest.permission.CAMERA,
             Manifest.permission.READ_PHONE_STATE)
    .subscribe(granted -> {
        if (granted) {
           // 所有權(quán)限允許后執(zhí)行
        } else {
           // 有一個不允許后執(zhí)行
        }
    });

當(dāng)然進(jìn)行權(quán)限設(shè)置的時候都是用的lambda表達(dá)式,當(dāng)然也可以不用這樣所,不過我比較喜歡用表達(dá)式,這樣代碼很簡潔.

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

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

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