92789


AndroidでJetpack Composeとaccompanistを使ってJetpackらしい書き方でpermissionRequestをしたいです。

<https://google.github.io/accompanist/permissions/>

Foreground
Serviceの権限を取得したいのですが、`launchPermissionRequest`を呼んでも権限の許可を求めるダイアログボックスが表示されません。  
どうやら権限を許可した覚えが無いにも関わらずisGrantedがtrueを返しているようなのです。

なぜでしょうか?

この現象はデバッグビルドしたアプリを実機で動かす際に起こっています。  
デバッグビルドでは権限がデフォルトですべて許可になっていたりするのでしょうか?

下記のようなコードで`servicePermissionState.status.isGranted`がtrueかどうかでボタンを押したときの挙動が変わります。  
AndroidManifestの方でもこのpermissionについては記載しています。

Android 12を想定しています。

[code]

    fun BigButton() {
        val servicePermissionState = rememberPermissionState(permission = android.Manifest.permission.FOREGROUND_SERVICE)
        val listener = MyListener()
        var is_enable = remember { mutableStateOf(true)}
        val text = if (servicePermissionState.status.isGranted) "Enable" else "Disable"
        var color = if (is_enable.value) Color.DarkGray else Color.Cyan
        val context = LocalContext.current
        if (!servicePermissionState.status.isGranted) {
            color = Color.Red
        }
        Button(modifier= Modifier
            .size(width = 220.dp, height = 80.dp),
            colors=ButtonDefaults.buttonColors(backgroundColor = color), onClick = {
                if (servicePermissionState.status.isGranted) {
                    is_enable.value = !is_enable.value
                    Log.i("Granted", servicePermissionState.status.isGranted.toString())
    
                } else {
                    Log.i("False", "false")
                    servicePermissionState.launchPermissionRequest()
                }
            }) {
            Text(text)
        }
    }
    
[/code]


CC BY-SA 4.0
2022-12-13T15:04:15.157
92757
2022-12-14T14:38:07.270
2022-12-13T15:48:31.580
5246
5246
question
android kotlin
AndroidでJetpack Composeを使った権限取得をしたいが確認画面が表示されない


Android9からですが、FOREGROUND_SERVICEは自動付与になっているためと思われます。

manifestに以下uses-permissionが定義されていれば、自動付与です。

[code]

    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    
[/code]

<https://developer.android.com/about/versions/pie/android-9.0-migration#tya>


CC BY-SA 4.0
2022-12-14T14:38:07.270
92789
2022-12-14T14:38:07.270
39410
92757
answer