Wear OS のヘルスサービス

Wear OS 3 以降には、ヘルスサービスと呼ばれるサービスが含まれています。ヘルスサービスは、デバイス上のさまざまなセンサーと関連アルゴリズムの中継点として機能し、アクティビティ、エクササイズ、健康に関連する質の高いデータをアプリに提供します。

ヘルスサービス API は本番環境で使用できるベータ版です。

フィットネス アプリの例については、GitHub のヘルスサービス サンプル リポジトリをご覧ください。

ヘルスサービスがアプリ デベロッパーに有用な理由

ヘルスサービスを使用しない場合、アプリは 1 つまたは複数のセンサーに接続して各センサーを適切に構成し、未加工のセンサーデータを受信して独自のアルゴリズムで有意義な情報を抽出する必要があります。たとえば、ユーザーのアクティビティ セッション中の標高変化を表示するために、Sensor.TYPE_PRESSURE の更新に登録して現在の気圧を取得し、その値に基づいて現在の高度を計算して、経時的にこのデータを集計する場合があります。

ヘルスサービスは、ユースケースに合わせてすべてのフィットネスと健康に関連するセンサーを自動的に構成し、センサーデータを収集して、心拍数、距離、カロリー、標高、階数、速度、ペースなどの指標を計算します。アプリはヘルスサービスから直接このデータに登録できます。

with-health-services

ヘルスサービスを使用すると、次のようなメリットがあります。

  • プラットフォームでネイティブに動作する強力なアルゴリズムを利用できます。
  • 電力の効率化に向けて最適化されたヘルスサービスのセンサー構成を使用することで、バッテリーを節約できます。
  • 将来を見据えて Wear 3+ デバイスに対応したアプリ。ヘルスサービス API は Wear 3+ デバイス間で整合性があるため、アプリを常に最新の状態に保つことが容易になります。
  • 標準化されたプラットフォーム計算機能を使用して、同じデバイス上のすべてのアプリ間でデータの整合性を確保します。
  • 他のアプリから開始された進行中のエクササイズを検出する機能など、アクティビティ認識機能を有効にします。

これらのメリットにより、デベロッパーは電力効率の良い方法で堅牢かつ一貫性のある指標を提供するプラットフォームに頼れるため、独自の機能とユーザー エクスペリエンスの開発に集中できます。

ヘルスサービスのコンセプト

ヘルスサービスを使用して開発する場合は、次のコンセプトに留意してください。

データの種類

ヘルスサービスは、デバイス上の利用可能なすべてのソースから収集され、継続的に更新されるさまざまなデータを提供します。データは、大きく 2 つのカテゴリに分類されます。1 つの時点でサンプリングされたデータ(HEART_RATE_BPM など)と一定期間にわたって取得されたデータ(DISTANCE など)です。

詳細については、データの種類の全一覧をご覧ください。

イベント

アプリは、ユーザーが目標とする特定の状態またはイベントに達するとイベントを受け取ります。たとえば、ユーザーはエクササイズ アプリ内で目標距離を登録でき、その距離を走るとアプリがユーザーに通知します。または、ユーザーが特定の歩数に達した場合や、睡眠状態になった場合などは、受動的な目標を使用します。

詳細については、エクササイズ目標パッシブ目標をご覧ください。

エクササイズの種類

ヘルスサービスは、エクササイズをトップクラスの機能として扱い、ランニングやスキーなどのさまざまな種類のエクササイズをサポートしています。エクササイズの進行中は、ヘルスサービスが、選択されたデータの種類に関する指標を収集し、エクササイズを管理しているアプリに報告できます。

詳細については、エクササイズの種類の全一覧をご覧ください。

ヘルスサービスを使用してアプリを作成する

以降のセクションで説明するように、ヘルスサービスを使用してアプリを作成します。

パッシブなエクスペリエンス

アプリは PassiveMonitoringClient を使用して、データの種類またはイベントに関する最新情報を受け取る PassiveListenerService を実装します。これは、データの更新頻度が比較的低い長期的なエクスペリエンスに適しています。

詳細については、パッシブなデータの更新をご覧ください。

アクティブなエクスペリエンス

MeasureClient では、アプリがリスナーを登録して迅速なデータの更新を受信します。これは、ユーザーがアプリ UI を見ている間など、短期的なエクスペリエンスに適しています。センサーのサンプリング レートが上昇し、消費電力が増加するため、アプリが登録済みのリスナーに費やす時間を最小限に抑えるようにしてください。この API は、バックグラウンド キャプチャやワークアウトのトラッキングを目的としたものではありません。

詳しくは、MeasureClient で健康状態を測定するをご覧ください。

ExerciseClient を使用すると、アプリでユーザーのワークアウトの管理やエクササイズ目標の設定ができます。また、現在のエクササイズ状態について最新情報をリッスンできます。エクササイズがご自身のアプリに属している限り、アプリは、迅速に更新されるデータをこの API を通じて受信することも可能です。ExerciseClient は、ランニング アプリ(ランニングの記録、デバイスでのライブ指標の表示、詳細な分析のためのデータの記録)などのアプリに使用できます。

詳しくは、ExerciseClient でエクササイズを記録するをご覧ください。

合成データによるテスト

アプリがヘルスサービスからデータの更新を受信していることをテストするには、ユーザーがエクササイズを実際に行っているかのようにデータが出力されるよう、デバイスを手動で設定します。

詳しくは、ヘルスサービスで合成データを使用するをご覧ください。