Wear OS のヘルスサービス

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

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

ヘルスサービスがアプリ デベロッパーをサポートする仕組み

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

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

with-health-services

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

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

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

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

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

データ型

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

イベント

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

エクササイズの種類

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

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

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

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

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

アプリは PassiveMonitoringClient を使用して、BroadcastReceiver が特定のデータ型やイベントに関する最新情報を受け取るための ComponentName を提供します。これは、データ更新の頻度が比較的低く、時間をかけて展開される長期的なエクスペリエンスに適しています。

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

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

MeasureClient では、アプリがリスナーを登録して迅速なデータの更新を受信します。これは、ユーザーがアプリ UI を見ている間など、短期的なエクスペリエンスに適しています。センサーのサンプリング レートが上昇し、消費電力が増加するため、アプリが登録済みのリスナーで費やされる時間を最小化することが重要です。この API は、バックグラウンド キャプチャやワークアウトのトラッキングを目的としたものではありません。たとえば、MeasureClient は血中酸素濃度(血中酸素ウェルネス)を測定するアプリに使用できます。

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

詳細については、アクティブなデータとエクササイズをご覧ください。

合成データによるテスト

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

詳細については、合成データによるテストをご覧ください。