Wear OS のヘルスサービス
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Wear OS 3 以降には、ヘルスサービスと呼ばれるサービスが含まれています。ヘルスサービスは、デバイス上のさまざまなセンサーと関連アルゴリズムの中継点として機能し、アクティビティ、エクササイズ、健康に関連する質の高いデータをアプリに提供します。
フィットネス アプリの例については、GitHub のヘルスサービスのサンプル リポジトリをご覧ください。
ヘルスサービスがアプリ デベロッパーに有用な理由
ヘルスサービスを使用しない場合、アプリは 1 つまたは複数のセンサーに接続して各センサーを適切に構成し、未加工のセンサーデータを受信して独自のアルゴリズムで有意義な情報を抽出する必要があります。たとえば、ユーザーのアクティビティ セッション中の標高変化を表示するために、Sensor.TYPE_PRESSURE
の更新に登録して現在の気圧を取得し、その値に基づいて現在の高度を計算して、経時的にこのデータを集計する場合があります。
ヘルスサービスは、ユースケースに合わせてすべてのフィットネスと健康に関連するセンサーを自動的に構成し、センサーデータを収集して、心拍数、距離、カロリー、標高、階数、速度、ペースなどの指標を計算します。アプリはヘルスサービスから直接このデータに登録できます。

ヘルスサービスを使用すると、次のようなメリットがあります。
- プラットフォームでネイティブに動作する強力なアルゴリズムを利用できます。
- 電力の効率化に向けて最適化されたヘルスサービスのセンサー構成を使用することで、バッテリーを節約できます。
- 将来を見据えて Wear 3+ デバイスに対応したアプリ。ヘルスサービス API は Wear 3+ デバイス間で整合性があるため、アプリを常に最新の状態に保つことが容易になります。
- 標準化されたプラットフォーム計算機能を使用して、同じデバイス上のすべてのアプリ間でデータの整合性を確保します。
- 他のアプリから開始された進行中のエクササイズを検出する機能など、アクティビティ認識機能を有効にします。
これらのメリットにより、デベロッパーは電力効率の良い方法で堅牢かつ一貫性のある指標を提供するプラットフォームに頼れるため、独自の機能とユーザー エクスペリエンスの開発に集中できます。
ヘルスサービスのコンセプト
ヘルスサービスを使用して開発する場合は、次のコンセプトに留意してください。
データの種類
ヘルスサービスは、デバイス上の利用可能なすべてのソースから収集され、継続的に更新されるさまざまなデータを提供します。データは、大きく 2 つのカテゴリに分類されます。1 つの時点でサンプリングされたデータ(HEART_RATE_BPM
など)と一定期間にわたって取得されたデータ(DISTANCE
など)です。
詳細については、データの種類の全一覧をご覧ください。
イベント
アプリは、ユーザーが目標とする特定の状態またはイベントに達するとイベントを受け取ります。たとえば、ユーザーはエクササイズ アプリ内で目標距離を登録でき、その距離を走るとアプリがユーザーに通知します。または、ユーザーが特定の歩数に達した場合や、睡眠状態になった場合などは、受動的な目標を使用します。
詳細については、エクササイズ目標とパッシブ目標をご覧ください。
エクササイズの種類
ヘルスサービスは、エクササイズをトップクラスの機能として扱い、ランニングやスキーなどのさまざまな種類のエクササイズをサポートしています。エクササイズの進行中は、ヘルスサービスが、選択されたデータの種類に関する指標を収集し、エクササイズを管理しているアプリに報告できます。
詳細については、エクササイズの種類の全一覧をご覧ください。
ヘルスサービスを使用してアプリを作成する
以降のセクションで説明するように、ヘルスサービスを使用してアプリを作成します。
パッシブなエクスペリエンス
アプリは PassiveMonitoringClient
を使用して、データの種類またはイベントに関する最新情報を受け取る PassiveListenerService
を実装します。これは、データの更新頻度が比較的低い長期的なエクスペリエンスに適しています。
詳細については、パッシブなデータの更新をご覧ください。
アクティブなエクスペリエンス
MeasureClient
では、アプリがリスナーを登録して迅速なデータの更新を受信します。これは、ユーザーがアプリ UI を見ている間など、短期的なエクスペリエンスに適しています。センサーのサンプリング レートが上昇し、消費電力が増加するため、アプリが登録済みのリスナーに費やす時間を最小限に抑えるようにしてください。この API は、バックグラウンド キャプチャやワークアウトのトラッキングを目的としたものではありません。
詳しくは、MeasureClient で健康状態を測定するをご覧ください。
ExerciseClient
を使用すると、アプリでユーザーのワークアウトの管理やエクササイズ目標の設定ができます。また、現在のエクササイズ状態について最新情報をリッスンできます。エクササイズがご自身のアプリに属している限り、アプリは、迅速に更新されるデータをこの API を通じて受信することも可能です。ExerciseClient
は、ランニング アプリ(ランニングの記録、デバイスでのライブ指標の表示、詳細な分析のためのデータの記録)などのアプリに使用できます。
詳しくは、ExerciseClient でエクササイズを記録するをご覧ください。
合成データによるテスト
アプリがヘルスサービスからデータの更新を受信していることをテストするには、ユーザーがエクササイズを実際に行っているかのようにデータが出力されるよう、デバイスを手動で設定します。
詳しくは、ヘルスサービスで合成データを使用するをご覧ください。
あなたへのおすすめ
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-26 UTC。"],[],[],null,["# Health Services on Wear OS\n\nWear OS 3 and higher includes a service called\n[Health Services](/jetpack/androidx/releases/health).\nHealth Services acts as an intermediary to the various sensors and related\nalgorithms on the device to provide apps with high-quality data related to\nactivity, exercise, and health.\n\nSee the\n[Health Services samples repository](https://github.com/android/health-samples/tree/main/health-services)\non GitHub for example fitness apps.\n\nHow Health Services helps app developers\n----------------------------------------\n\nWithout Health Services, apps must connect to one or multiple sensors,\nconfigure each of them appropriately, receive raw sensor data, and use their\nown algorithms to derive meaningful information. For example, an app might\nregister for updates of\n[`Sensor.TYPE_PRESSURE`](/reference/kotlin/android/hardware/Sensor#type_pressure)\nto get the current air pressure, use it to compute the current altitude, and\naggregate this data over time to show the elevation changes during a user's\nactivity session.\n\nHealth Services automatically configures all fitness and health\nrelated sensors appropriately for the use-case, collects sensor data, and computes\nmetrics like heart rate, distance, calories, elevation, floors, speed, pace,\nand more. Apps can register for this data directly from Health Services.\n\nSome of the benefits of using Health Services include the following:\n\n- Takes advantage of powerful algorithms running natively on the platform.\n- Conserves battery by using sensor configurations from Health Services that are optimized for power efficiency.\n- Future-proofs an app for Wear 3+ devices. The Health Services API is consistent across Wear 3+ devices, making it easier to keep your app up to date.\n- Ensures data consistency across all applications on the same device by using standardized platform computations.\n- Enables activity-aware experiences, including the ability to detect an ongoing exercise started from another app.\n\nThese benefits let developers focus on developing unique features and user\nexperiences, while relying on the platform to provide robust and consistent\nmetrics in a power-efficient manner.\n\nHealth Services concepts\n------------------------\n\nKeep the following concepts in mind when developing with Health Services.\n\n### Data types\n\nHealth Services offers a variety of data collected and continuously updated\nfrom all the available sources on the device. The data falls into two\nbroad categories: data sampled at a single point in time, such as\n`HEART_RATE_BPM`, and data taken over a time interval, such as `DISTANCE`.\n\nFor more information, see the full list of [Data types](/reference/kotlin/androidx/health/services/client/data/DataType).\n\n### Events\n\nApps receive events when the user reaches a certain goal state or event. For\nexample, a user can register a distance goal within an exercise app, and then\nthe app notifies the user when they have run a certain distance.\nAlternatively, use a passive goal for situations like the user hitting a\ncertain step count or falling asleep.\n\nFor more information, see [Exercise goals](/reference/kotlin/androidx/health/services/client/data/ExerciseGoal) and [Passive goals](/reference/kotlin/androidx/health/services/client/data/PassiveGoal).\n\n### Exercise types\n\nHealth Services treats exercise as a first-class feature and supports a\nmultitude of exercise types, such as running or skiing. While an exercise is in\nprogress, Health Services can collect metrics on selected data types and report\nback to the app that manages the exercise.\n\nFor more information, see the full list of [exercise types](/reference/kotlin/androidx/health/services/client/data/ExerciseType).\n\nCreate apps using Health Services\n---------------------------------\n\nCreate apps using Health Services as described in the following\nsections.\n\n### Passive experiences\n\nUsing\n[`PassiveMonitoringClient`](/reference/kotlin/androidx/health/services/client/PassiveMonitoringClient),\nyour app implements a `PassiveListenerService` that receives updates about a\ndata type or an event. This is suited for long-lived experiences where data\nupdates are relatively infrequent.\n\nSee [Passive data updates](/training/wearables/health-services/passive)\nfor more information.\n\n### Active experiences\n\nUsing `MeasureClient`, your app registers listeners to receive rapid data\nupdates. This is suited for short-lived experiences, such as while the user\nlooks at your app UI. Try to minimize the time your app\nspends with a registered listener, because it increases the sensor sampling rate\nand thus increases power consumption. This API is not intended for background\ncapture or workout tracking.\n\nSee [Take spot health measurements with MeasureClient](/training/wearables/health-services/active-data/measure-client)\nfor more information.\n\nUsing `ExerciseClient`, your app can manage a user's workout, set exercise goals,\nand listen for updates about the current exercise state. Your app can also\nreceive rapid data updates through this API, as long as the exercise belongs to\nyour app. `ExerciseClient` can be used for apps such as a running app that\nlets users record their run, displays live metrics on their device, and records\ndata for further analysis.\n\nSee [Record an exercise with ExerciseClient](/training/wearables/health-services/active-data)\nfor more information.\n\n### Test with synthetic data\n\nTo test that your app is receiving data updates from Health Services, manually\nset your device to emit data as if a user were engaged in an exercise.\n\nSee [Use synthetic data with Health\nServices](/training/wearables/health-services/synthetic-data) for more information.\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Record an exercise with ExerciseClient](/training/wearables/health-services/active-data)\n- [Take spot health measurements with MeasureClient](/training/wearables/health-services/active-data/measure-client)\n- [Passive data updates](/training/wearables/health-services/passive)\n- [Enhance app compatibility across Wear OS devices](/training/wearables/health-services/compatibility)"]]