RxPermissionsを使ってRuntime Permissionをリクエストする

面倒くさいRuntime Permissionの実装ですが、RxPermissionsというライブラリを使うと楽ができていい感じです。

プロジェクトレベルの build.gradle にJitPackのリポジトリを追加します。

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

アプリレベルの build.gradle にRxJavaとRxPermissionsを追加します。

dependencies {
    // RxJava
    implementation 'io.reactivex.rxjava2:rxjava:2.2.13'

    // RxPermissions
    implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
}

AndroidManifest.xmlにパーミッションを追加します。

<uses-permission android:name="android.permission.CAMERA" />

RxPermissionsによるRuntime Permissionの実装は簡単です。以下はFragmentでの実装になります。

val rxPermissions = RxPermissions(this)

rxPermissions
    .request(Manifest.permission.CAMERA)
    .subscribe { granted ->
        if (granted) {
            // permission granted
        } else {
            // permission denied
        }
    }

筆者

茨城県つくば市在住のソフトウェアエンジニアです。得意領域はAndroidとFlutterです。「Jetpack ComposeによるAndroid MVVMアーキテクチャ入門」の著者です。

👉もっと詳しく