Tech Sheets

Jetpack Composeでランタイムパーミッションを取得する

最終更新日:2024-07-10

Jetpack Composeでランタイムパーミッションを取得するには rememberLauncherForActivityResult と ActivityResultContracts.RequestPermission() をセットで使います。

@Composable
fun PermissionScreen() {
  val request = rememberLauncherForActivityResult(
    ActivityResultContracts.RequestPermission()
  ) { isGranted ->
    if (isGranted) {
      // 権限もらえた!
    } else {
      // だめだった..
    }
  }
  Scaffold { contentPadding ->
    Column(
      modifier = Modifier.padding(contentPadding),
    ) {
      Button(onClick = {
        // ダイアログ表示
        request.launch(android.Manifest.permission.POST_NOTIFICATIONS)
      }) {
        Text("権限をもらう")
      }
    }
  }
}

一覧に戻る