新しいHealth Connectで健康データを一元管理

  • Health Connect は、デバイス上の健康とフィットネスのデータを一元管理し、きめ細かなプライバシー制御を備えたアプリ間での共有を可能にします。
  • 開発者は、Health Connect SDK を使用してアプリを統合し、特定の権限を宣言し、クライアントを管理し、ランタイム アクセスを要求します。
  • 同期は、ログ、メタデータ、変更トークン、および挿入、更新、削除、トークンの有効期限を処理するためのベスト プラクティスに基づいています。
  • このアプローチは、データ サイロを削減し、医療の相互運用性と医療情報に対するユーザー制御に関する幅広い取り組みと整合するのに役立ちます。

ヘルスコネクト

Android スマートフォンで複数のエクササイズ、睡眠、栄養、健康アプリを使用している場合は、独自のアプリがある可能性が非常に高くなります。 データがあちこちに散らばっている 管理が面倒になります。Health Connect はまさにそのためのツールです。情報を整理し、一元管理し、プライバシー管理を明確にすることで、アプリ間を移動する煩わしさから解放されます。

さらに、開発者やヘルスケア企業にとって、ヘルスコネクトは 健康データの単一統合ポイント これにより、制御とセキュリティを維持しながら、同期が簡素化され、相互運用性が向上し、より豊かなユーザー エクスペリエンスが実現します。

Health Connect とは何ですか? また、どのような問題を解決しますか?

AndroidのHealth Connectは、 健康と身体活動データの中央ハブ各アプリが独自の情報を個別に保存および管理するのではなく、Health Connect はデバイス上の共通ストレージとして機能し、さまざまなアプリがユーザーの許可を得てデータを読み書きできるようになります。

このアイデアは、 歩数、心拍数、睡眠、栄養、月経周期の記録 これらの情報はアプリ、デバイス、サービスに分散しています。Health Connect を使えば、すべての情報がスマートフォンにローカルに保存され、何を、誰と、どのような目的で共有するかを自分で決めることができます。

Googleの観点から見ると、このシステムにより プライバシーを犠牲にすることなくアプリ間でデータを共有するユーザーにとって、これは利便性の向上と健康状態の全体的な把握の向上につながります。開発者にとって、統合ごとに車輪の再発明をすることなく健康データを操作するための統合 API を意味します。

GoogleがFitbitを買収
関連記事
GoogleがFitbitを買収:その影響、プライバシー、そしてウェアラブルの未来

Health ConnectへのアクセスはAndroidのバージョンによって異なります

Health Connectへのアクセス方法は、 デバイスのAndroidバージョンAndroid 14 以降ではシステム自体の一部となるためです。

ヘルスコネクト
ヘルスコネクト
開発者: Google LLC
価格: Free

Android 14以降のヘルスコネクト

Android 14(APIレベル34)以降、ヘルスコネクトは Androidフレームワークに統合されたモジュールもはや単なるスタンドアロンアプリではありません。つまり、動作させるためにGoogle Playから何かをダウンロードする必要がなく、システム設定から直接管理できます。

Android 14以降で開くには、 デバイスの設定 セキュリティとプライバシーの設定に移動します。通常は、「設定」>「セキュリティとプライバシー」>「プライバシーコントロール」>「Health Connect」(翻訳やメーカーによっては「Health Connected」)の順に進みます。 設定の検索バーで「Health Connect」を検索します 早くそこに着くために。

このバージョンでは、携帯電話をアップデートすると、システムが 以前のバージョンのアプリで保存されていたデータが自動的に移行されます。 Health Connect(以前使用していた場合)から統合システムモジュールまで、既に付与されている権限も含めて、すべての権限を復元します。これにより、サービスを停止することなく古いアプリをアンインストールできます。

Android 13 以前のヘルスコネクト

Android 13(API 33)以前のバージョンでは、Health Connect はシステムに含まれていないため、別途インストールする必要があります。 Google Playストアからアプリをインストールします それを使用できるように。

アプリをインストールしたら、「設定」>「アプリ」>「ヘルスコネクト」から開くか、 クイック設定 より直接的なアクセスが可能になります。これらのデバイスでは、Health Connectにアプリを統合済みの開発者は エクスペリエンスを損なうことなく移行する ユーザーが Android 14 以降にアップグレードする場合、専用の移行ガイドが役立ちます。

注意を払うことが重要です Health Connectは複数ユーザーのプロファイルをサポートしていません Androidの仕事用プロファイルでは動作しません。データ所有者を明確に管理するため、ユーザーのメインプロファイルでのみ動作します。

健康とフィットネスのアプリを一元管理して接続

Android向けヘルスコネクトアプリ

ヘルスコネクトの一般的なユーザーにとっての鍵は、 さまざまな健康・ウェルネスアプリを接続する そうすれば、アプリ間でデータを共有できるようになります。例えば、フィットネスアプリは他のアプリで記録された睡眠データを利用でき、栄養アプリは歩数や消費カロリーを追跡できます。

通常の手順としては、デバイスでHealth Connectを開き、次のような最初のフローをタップします。 「スタート」または設定 権限とデータセクションでは、アプリケーションの権限設定にアクセスできます。そこから、連携させたいアプリを有効にできます。そして、重要なのは、 それぞれが読み書きできるデータのカテゴリーを選択する (たとえば、歩数は記録できるが体重は記録できない、または心拍数は記録できるが月経周期は記録できない)。

ヘルスコネクトは情報を次のように分類します テーマ別カテゴリー身体活動、身体測定、月経周期、睡眠、栄養、バイタルサイン、医療記録など。これにより、何が、どのアプリと、どのような目的で共有されているかが一目でわかります。また、最近どのアプリがデータにアクセスしたかを確認することもできます。

一部のアプリでは、同期を開始する前に有効にする必要があることに注意してください。 関連アプリケーション自体内 Health Connectに加えて、何かが同期されていない場合は、Health Connectのオプションと、関連する各アプリの内部設定の両方を確認することをお勧めします。

どのようなデータが共有され、どのように管理されますか?

アプリがヘルスコネクトに接続し、アクセスを許可すると、そのアプリは 特定の種類のデータの読み取りと書き込みの権限 中央倉庫では、常に承認したカテゴリ内で保管されます。

アクセスが許可されると、アプリは 過去30日間のデータ そして、その時点以降に生成された新しい情報。 医師登録官 (病歴、報告書など)の場合、この30日間の制限は適用されません。明示的な承認があれば、申請は 利用可能なすべての医療履歴を表示 ヘルスコネクトで。

技術的には、データは Androidデバイス自体のローカルどのアプリがどのような情報にアクセスするかはユーザーが管理でき、いつでも権限を取り消したり、特定の種類のデータの共有を停止したりできます。ただし、接続されたアプリのサービスは引き続き情報を保持する場合があります… すでに同期されているデータのコピー 許可を取り消す前に、独自のサーバーで実行してください。

このモデルは、Androidエコシステム内の情報サイロ化の問題を軽減するのに役立ちます。ある場所にステップがあり、別の場所に重みがあり、さらに別の場所に眠るのではなく、それらすべてが 共通ストレージおよびオーケストレーションポイントユーザー エクスペリエンスとその後の分析の品質の両方が向上します。

医療の相互運用性の視点:モバイルを超えて

データの断片化はフィットネス アプリだけの問題ではなく、ヘルスケア分野全般に存在します。 歴史的な相互運用性の欠如医療データは、地域、病院、保険会社、研究所、さらには特定の研究プロジェクトごとに区分されることが多く、まさに情報サイロを形成しています。

この断片化は莫大なコストを伴います。いくつかの分析では、相互運用性の欠如が次のような結果をもたらす可能性があると推定されています。 国の年間医療費の約4,7%これは、重複、非効率、テストの繰り返し、専門家間の連携不足により、数十億ユーロの損失につながります。

健康データを一元管理し、正しくカタログ化することで、 診断と治療を改善するこれにより、遅延が削減され、不必要な再検査が回避され、たとえ別の地域やシステムから取得したものであっても、専門家が患者の関連病歴にアクセスしやすくなります。さらに、この適切に構造化されたデータは、[以下]にとって非常に貴重です。 生物医学研究と新薬の開発.

このより広い文脈の中で、コネクトヘルスやそのユニバーサルヘルスチェーン(UHC)プラットフォームのようなプロジェクトの哲学が生まれ、 さまざまな種類の臨床データを統合、一元化、接続する 国際標準(HL7 FHIR、IPS、USCDI、SNOMED、LOINC)、ブロックチェーン、人工知能、IoTを活用した大規模なデータ統合システム。これらは異なる分野(マクロヘルスケアシステムとAndroidのローカルデータストア)で運用されているものの、データサイロを解消し、 ユーザーが自分の医療情報をよりコントロールできるようにする.

開発者向けHealth Connect:アプリの準備

技術的な観点から見ると、ヘルスコネクトは Jetpack の SDK (androidx.health.connect) これにより、アプリケーションはHealth Connectデータストアと統合し、レコードの読み取りと書き込みの両方が可能になります。この統合には、いくつかの設定手順とベストプラクティスが必要です。

Health Connectアプリとその利用可能状況

Health Connectアプリまたはモジュールは、 アプリがSDK経由で送信するすべてのリクエストを処理するデータの保存、権限の制御、読み取りおよび書き込みアクセスなどが含まれます。

アクセスはユーザーのデバイスの Android バージョンによって異なります。Android 14 以降では、モジュールはデフォルトで含まれていますが、Android 13 以前では必須です。 Google PlayからHealth ConnectアプリをインストールしますSDKはAndroid 8(API 26)以降をサポートしていますが、Health ConnectアプリはAndroid 9(API 28)以降でのみ動作します。つまり、統合を準備することでAndroid 8のユーザーをサポートすることはできますが、実際にHealth Connectを利用できるのはAndroid 9以上のユーザーのみです。

ヘルスコネクトが利用可能かどうか、またどのようなステータスなのかを確認するには、顧客は電話をかけることができます。 HealthConnectClient.getSdkStatus それに応じて対応します。可能な場合は続行し、必要に応じてユーザーを Google Play にリダイレクトしてプロバイダーをインストールまたは更新します。

Health Connect SDKを追加する

APIを使用するには、対応する依存関係を モジュール build.gradle典型的には、ライブラリのようなものが含まれます。 androidx.health.connect:connect-client 依存関係セクションを参照してください。理想的には、 最新バージョンの使用に関する公式ドキュメントSDK が新しい機能、権限の変更、安定性の向上を伴って進化するにつれて。

機能可用性APIの使用

ユーザーは必ずしもHealth Connectのバージョンを更新するわけではないので、SDKはAPIを提供しています。 特定の機能が利用可能かどうかを確認する デバイス上で、使用 healthConnectClient.features.getFeatureStatus()この呼び出しは、FEATURE_STATUS_AVAILABLE や FEATURE_STATUS_UNAVAILABLE などの定数を返します。

機能が利用できない場合は、 ユーザーにHealth Connectのアップデートを依頼するシステム モジュールにリンクされている一部の機能はフレームワーク自体に依存しているため、ユーザーが Health Connect APK をインストールしても、Android 13 以前には存在しないことに注意してください。

Health Connect の権限とプライバシー

Health Connectで健康データを記録する

健康や身体活動データへのアクセスは非常に機密性が高いため、ヘルスコネクトは 読み取りおよび書き込み操作に対する追加のセキュリティ層これにより、開発者は、何を求めているのかについて透明性、明示性、および非常に正確性を保つことが求められます。

カロリーを計算するアプリ。
関連記事
Androidでカロリーを計算して健康を改善するための最高のアプリ

マニフェストでの権限の宣言

ファイル内 AndroidManifest.xmlアプリは明確に宣言する必要があります 読み取りおよび書き込み権限 標準ラベルを使用して必要なもの <uses-permission> 中で <manifest>これらの権限は、データ タイプごとにグループ化されています。例:

<uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
<uses-permission android:name="android.permission.health.WRITE_HEART_RATE"/>
<uses-permission android:name="android.permission.health.READ_STEPS"/>
<uses-permission android:name="android.permission.health.WRITE_STEPS"/>

さらに、これらの許可は Google Play Console で宣言した内容と一致する アプリが読み取りまたは書き込みを行う Health Connect データの種類に関しては、透明性が重要です。今後、より多くのカテゴリのデータが必要になったために新しい権限を要求する場合は、次のことを行う必要があります... 新しいものとすでに使用したものの両方を含めます不要になったものだけを除外します。

特定のプライバシーポリシーに関する対話

マニフェストには、 プライバシーポリシーと許可の正当性 ユーザーが Health Connect の権限画面で対応するリンクをクリックすると、Health Connect から送信されます。

Android 13までのバージョンでは、インテントを受け取るアクティビティが定義されています ACTION_SHOW_PERMISSIONS_RATIONALEAndroid 14からは、 アクティビティエイリアス これに反応する android.intent.action.VIEW_PERMISSION_USAGE 適切なカテゴリにすることで、Health Connect は、アプリがそのデータを必要とする理由、そのデータの使用方法、およびそのデータを制御する方法をユーザーに示すことができます。

許可の動的な要求と管理

入手したら、 HealthConnectClientあなたのアプリは 実行時権限を要求する必要な機能をセットにまとめる(例えば、読み書き、歩数、心拍数など)。何かをリクエストする前に、確認することをお勧めします。 getGrantedPermissions() すでに付与されている場合。

これらを要求するために、SDKは結果コントラクトを提供します。 PermissionController.createRequestPermissionResultContract()これにより、ユーザーには ヘルスコネクト標準ディスプレイ 各権限を承認または拒否できます。アプリは両方のシナリオに対応できるように準備する必要があります。重要な権限が拒否された場合は、機能フローを調整または制限する必要があります。

ユーザーは いつでも権限を取り消す Health Connect では、特にアクセス許可に依存する読み取りまたは書き込み操作を実行する前に、どのアクセス許可がまだアクティブであるかを定期的に再検証することをお勧めします。

Health Connectからのオンボーディングと開始

多くのアプリには、機能の説明、同意の取得、初期設定を行うオンボーディングフローが含まれています。Health Connect では、このフローを… 独自のインターフェースから直接起動ユーザーは、アプリ自体だけでなく、Health Connect からもアプリに接続できるようになります。

これを実行するには、オンボーディングアクティビティを特定のインテントで宣言します(androidx.health.ACTION_SHOW_ONBOARDING APKと android.health.connect.action.SHOW_ONBOARDING (Android 14以降)適切な権限によって保護されています。ご注意ください。 このアクティビティは複数回呼び出すことができますたとえば、ユーザーがアプリを切断し、後で再接続することにした場合などです。

基本操作: Health Connect でのデータの読み取りと書き込み

統合が設定されると、アプリは 新しいレコードを挿入する Health Connect で、または既存のデータを個別および集計で読み取ることもできます。

データの書き込み: レコードとメタデータ

データはオブジェクトとして表現される Record それぞれのタイプ(歩数、心拍数、体重など)に応じて異なります。例えば歩数を数えるには、 StepsRecord歩数、開始時刻と終了時刻、タイムゾーン、メタデータなどのフィールドが含まれます。

アプリは適切な値でレコードを構築し、それを挿入します。 レコードを挿入する()記録にオブジェクトを追加するのが一般的です Metadata データかどうか指定する デバイスによる自己登録 (たとえば、時計)、またはデバイス情報 (タイプ、製造元など) を含めて手動で入力します。

データソースが独自のウェアハウス(バックエンドやローカルデータベースなど)である場合、 clientRecordId y clientRecordVersion 制御する べき等挿入と更新既存の顧客 ID と上位バージョンのレコードを送信すると、Health Connect によって以前のデータが置き換えられます。それ以外の場合は、新しいデータが作成されます。

挿入後、 レコードを挿入する() Health Connect によって生成された ID のリストが含まれています。これは必須です。 これらの内部IDを保存する データの読み取りと同期も行う場合は、削除や変更を処理するために必要となるため、独自のシステムでこれらの設定を行う必要があります。

個別データと集計データの読み取り

特定のデータを読み取るには、 readRecords() リクエストの種類 ReadRecordsRequest、レコードの種類と時間範囲によるフィルターが示されます(TimeRangeFilterこれは、 詳細記録のリスト アプリが 1 つずつ処理できるようにします。

ただし、ステップなどの累積型の場合は、 aggregate() 代わりに readRecords()集約により、 複数のソースがある場合の二重カウント (たとえば、モバイルと時計を同時に)、期間内の合計歩数など、より信頼性の高い指標を提供します。

Health Connect はデータを読み取ることができることに留意することが重要です。 許可が与えられた日の30日前までアプリケーションが古い履歴を参照する必要がある場合は、次のような特別な許可を要求する必要があります。 PERMISSION_READ_HEALTH_DATA_HISTORYただし、情報の機密性のため、より厳格な正当化と審査の対象となります。

アプリとHealth Connect間の高度な同期

多くの健康アプリには独自の 内部データウェアハウス プライマリソースとして機能するデータストア(ローカルまたはクラウド)です。Health Connect は、そのストアを置き換えるものではなく、両者が連携できるよう同期させることを目的として設計されています。

完全な同期プロセスには通常、次の 3 つの操作が含まれます。 Health Connect にアプリデータを挿入または更新するHealth Connect からウェアハウスに変更を抽出し、ユーザーがシステムで削除したデータを Health Connect で削除します。

お釣りトークンと増分消費

変更内容を抽出するために、Health Connect SDKは次のようなメカニズムを提供します。 変更の同期アプリはまず変更トークンをリクエストします getChangesToken()変更を追跡するレコードの種類を示します。このトークンは、変更をリクエストできる時点を表します。

そのトークンを使って、 getChanges() アイテムの受信が停止するまでループします。各レスポンスには変更のリスト(種類は UpsertionChange または DeletionChange)は、さらに変更があるかどうかを示すインジケータであり、次回のために保存する新しいトークンです。アプリはすべての変更を反復処理し、処理して、最後に保存する必要があります。 次の変更トークン 同期の参照として。

挿入/更新の変更(UpsertionChange)には、レコード全体とそのメタデータが含まれます。独自のデータの再インポートを避けるため、 dataOrigin.packageNameフィールドを確認する 独自のアプリから生成されたレコードは除外されます。削除の変更は 削除されたレコードのIDプライバシー上の理由から、データに関連付けられたこれらの ID を事前に保存しておくことが重要です。

一般的にはスワップトークンの使用が推奨される。 各データ型ごとに区切られる ビジネスロジックで複数の型を同時に処理する必要がある場合を除き、使用する型を制限します。これにより、ユーザーがいずれかの権限を取り消しても、同期全体が中断されることはありません。

変更トークンの有効期限が切れた場合の戦略

取引所トークンには 有効期限 30日以上使用されていない場合、情報の損失を防ぐため、トークンが無効になった場合に備えて回復戦略を計画する必要があります。

理想的な選択肢は、 最後に成功した読み取り トークンの有効期限が切れた場合は、クライアントIDまたはHealth Connect IDを使用して重複排除を適用し、その時点(または過去30日間)のデータを再読み込みしてください。より簡略化された戦略としては、過去30日間のデータを削除して再インポートするか、重複排除を行わずにその期間のみ読み取るという方法があります(後者は最悪で、ユーザーに重複が表示される可能性があります)。

すぐに使用しない場合でも、交換トークンを事前に申請して、 合理的な更新サイクル 時間切れにならないようにしてください。

低遅延のウェアラブルからの同期

データソースが ウェアラブル装置 Bluetooth Low Energy (BLE) 経由で接続する場合、アプリがフォアグラウンドにない場合でもデータが Health Connect に確実に届くようにするには、低遅延同期パイプラインが役立つことがあります。

このシナリオでは、Androidは コンパニオンデバイスサービスこれにより、Android 8 (API 26) 以降では、アプリがデバイスに関連付けられたままになり、データ (通知や GATT プロンプトなど) を効率的に受信できるようになります。

典型的な流れは次のようになります。まずユーザーは CompanionDeviceManagerを使用してウェアラブルをペアリングする通信に必要な権限を取得します。次に、マニフェストで、CompanionDeviceServiceを拡張し、アクションにリンクされたサービスを宣言します。 android.companion.CompanionDeviceService許可を得て保護されています android.permission.BIND_COMPANION_DEVICE_SERVICE.

このサービスはGATT接続とそのコールバックを管理します。ウェアラブルがデータを送信するたびに(例えば、新しい 心拍数 またはステップのパッケージ)では、サービスは受信した値を処理し、それを ヘルスコネクトの記録 そして、それを挿入します insertRecords()ただし、サービス自体が権限を要求することはできません。アプリが既に必要な権限を要求して取得していることを前提とする必要があります (たとえば、心拍数や歩数の書き込みなど)。

前景と背景での優れた読書習慣

設計上、アプリケーションは フォアグラウンドでHealth Connectデータを読み取りますただし、バックグラウンド読み取りのための特別な権限が付与されている場合は除きます。これは、機密データへのサイレントアクセスを制限するために行われます。

アプリがバックグラウンド読み取り権限を取得する場合、ユーザーはより高いレベルのアクセスを許可することになるため、これを明確に説明することが重要です。 なぜその機能が必要なのでしょうか? どのようなメリットがあるのか​​(例えば、アプリを開かなくても自動的に同期できるなど)についても確認しておきましょう。それでも、アクセスが制限される可能性があることを念頭に置いておく必要があります。 いつでも中断可能たとえば、システムがアプリを閉じた場合は、次のセッションで同期プロセスを再開する必要があります。

実際には、次の 2 つの重要なタイミングで新しいデータを確認するのが合理的です。 アプリがフォアグラウンドになるたびに (ライフサイクル イベントを使用)、ユーザーが Web ブラウザを開いている間は定期的に更新データがあるときに通知が送信され、ビュー、グラフ、または概要を更新できるようになります。

Google Diaryアプリの使い方
関連記事
Google Diaryアプリの使い方:完全なステップバイステップガイド

これらの実践を適切な権限管理、変更トークンの責任ある使用、一貫したID保管ポリシーと組み合わせることで、エンドユーザーの健康アプリとより高度な健康データ管理ソリューションの両方がHealth Connectを活用して、 断片化を減らし、データ品質を向上させる ユーザーは、何を誰と共有するかを常に制御できるため、より一貫性のあるエクスペリエンスを提供できます。 この情報を共有して、新しい Health Connect と、それが提供する健康データについて、より多くの人々に知ってもらいましょう。