■ やりたいこと
Google の Health Connect の認証画面(パーミッションダイアログ)を表示するアプリを Jetpack Compose と Kotlin で作成しています.
■ 現象
Pixel 9a 実機で認証ボタンを押しても,Health Connect の認証画面が表示されません.
■ 試したこと
HealthConnectClient.getOrCreate(this) でクライアント取得済
PermissionController.createRequestPermissionResultContract() を使用してランチャー登録済
requestPermissionsLauncher.launch(...) を呼び出している
AndroidManifest に <queries> で com.google.android.apps.healthdata を指定済
build.gradle.kts に androidx.health.connect:connect-client:1.1.0-alpha10 を記述済
■ 環境
Pixel 9a(Android 15)
Android Studio Meerkat 2024.3.2
Kotlin 1.9.21
Compose Compiler 1.5.7
■ 関連コード
● MainActivity.kt
class MainActivity : ComponentActivity() { private lateinit var requestPermissionsLauncher: ActivityResultLauncher<Set<String>> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val healthConnectClient = HealthConnectClient.getOrCreate(this) val permissions = setOf( HealthPermission.getReadPermission(StepsRecord::class) ) requestPermissionsLauncher = registerForActivityResult( PermissionController.createRequestPermissionResultContract() ) { granted -> if (granted.containsAll(permissions)) { // 許可されたときの処理 } } setContent { MaterialTheme { Surface(modifier = Modifier.fillMaxSize()) { PermissionRequestScreen { requestPermissionsLauncher.launch(permissions) } } } } } }
● PermissionRequestScreen
@Composable fun PermissionRequestScreen(onRequestPermission: () -> Unit) { Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center ) { Button(onClick = onRequestPermission) { Text("Health Connectの認証画面を開く") } } }
● AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.healthconnect1"> <queries> <package android:name="com.google.android.apps.healthdata" /> </queries> <application android:label="@string/app_name" android:theme="@style/Theme.HealthConnect1"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
● app/build.gradle.kts
dependencies { implementation("androidx.core:core-ktx:1.13.1") implementation("androidx.activity:activity-compose:1.8.2") implementation("androidx.compose.ui:ui:1.5.7") implementation("androidx.compose.material3:material3:1.2.0") implementation("androidx.health.connect:connect-client:1.1.0-alpha10") }
■ 質問
この構成で,なぜ Health Connect の認証画面(Permission Dialog)が表示されないのでしょうか?
初心者のため,設定やコードのどこに問題があるのかがわかりません.
アドバイスをよろしくお願いいたします!

あなたの回答
tips
プレビュー