多くのアプリには機能の説明やユーザーの同意の確認など、カスタムのオンボーディング フローがあります。ヘルスコネクトでオンボーディング フローを開始できるようにするには、マニフェストに次の行を追加します。
<!-- Required to support pre-Android 14 devices with APK Health Connect -->
<activity
android:name=".OnboardingActivity"
android:exported="true"
android:permission="com.google.android.apps.healthdata.permission.START_ONBOARDING">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_ONBOARDING"/>
</intent-filter>
</activity>
<!-- Required to support Android 14+ devices with platform Health Connect -->
<activity-alias
android:name="UAndAboveOnboardingActivity"
android:exported="true"
android:targetActivity=".OnboardingActivity"
android:permission="android.permission.health.START_ONBOARDING">
<intent-filter>
<action android:name="android.health.connect.action.SHOW_ONBOARDING" />
</intent-filter>
</activity-alias>
ユーザーは、アプリ内ではなくヘルスコネクト アプリから直接アプリへの接続を開始する場合があります。アプリでデータの読み取りまたは書き込みの権限を付与する以外の操作が必要な場合は、オンボーディング アクティビティを提供してください。
バージョン サポート
Android 14 以前のデバイスと Android 14 以降のデバイスの両方をサポートするには:
推奨されるアプローチ: 両方のシナリオを処理する単一のオンボーディング アクティビティを作成します。例に示すように、アクティビティ エイリアスを使用して、Android バージョン間の互換性を確認します。
別の方法: Android バージョンごとに 2 つのアクティビティをエクスポートします。このアプローチでは、メンテナンスの複雑さが増す可能性があります。
エクスポートされたアクティビティの要件
ユーザーがアプリをヘルスコネクトに接続しようとすると、エクスポートされたアクティビティが起動されます。このアクティビティで次のことを行う必要があります。
- 書き込みまたは読み取り対象のデータに関する説明など、関連するユーザー向け情報を表示します。
- 必要な場合はユーザーに同意を求めます。
- ヘルスコネクトへの権限のリクエストを行います。
- 定期的なワーカーのスケジュール設定など、その他のアプリ固有のロジックを実行します。
- 完了後、ユーザーがアクティビティを閉じられるようにします。
オンボーディング アクティビティをエクスポートしていないアプリの場合、ユーザーがアプリを接続しようとするとヘルスコネクトが [権限の管理] 画面を表示します。アプリの前提条件として、権限さえ付与されていれば統合が機能する場合には、これで問題ありません。
オンボーディング アクティビティは、複数回起動される場合があります。後でユーザーがアプリの権限を取り消して、再度接続した場合などが該当します。