質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

0回答

133閲覧

【Health Connect】権限リクエストボタンを押しても反応なし/Pixel 9a/Compose+Kotlin初心者

Yossy

総合スコア0

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2025/05/19 07:07

■ やりたいこと
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)が表示されないのでしょうか?
初心者のため,設定やコードのどこに問題があるのかがわかりません.
アドバイスをよろしくお願いいたします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問