Wear OS のヘルスサービスから生成された合成データを使用して、エクササイズが実際に行われているかのようにアプリをテストします。
Wear OS 3(API レベル 30)以上を搭載したエミュレータでテストする場合は、エミュレータで生成された合成データを使用できます。Wear OS 3 以降の合成データ生成の違いについて詳しくは、以下のガイドをご覧ください。
Wear OS 4 以降で合成データを使用する
Wear OS 4(API レベル 33)以降を実行しているエミュレータでテストしている場合は、エミュレータで生成された合成データを使用してアプリをテストできます。これにより、以前のバージョンの Wear OS での合成データの生成方法に比べて、次のような改善が加えられています。
Wear OS 4 以降での合成データの生成は、Health Services API のライフサイクルと統合されています。つまり、演習の開始や停止に adb コマンドは必要ありません。代わりに、ユーザーがアプリ内でエクササイズを開始または停止するのと同じように操作できます。
エクササイズ イベントのサポートを拡大: 自動一時停止と再開のイベント、転倒イベント、睡眠検出、ゴルフ ショット検出の受信をシミュレートできます。
ヘルスサービス センサー パネルを使用する
Android Studio Koala Feature Drop(カナリア)には、Wear OS のヘルスサービス センサー パネルが含まれています。このパネルを使用すると、特定のセンサー機能を搭載しているデバイスと搭載していないデバイスをシミュレートできます。これは、Wear OS でフィットネス アプリを構築する際にテストするうえで重要です。
このパネルを使用して指標の値を変更し、アプリがどのように調整されるかを確認することもできます。
パネルを開いて使用する手順は次のとおりです。
- Android Virtual Device(AVD)を作成または開き、エミュレータでアプリを実行します。
- エミュレータ パネルで [Wear Health Services] を選択します。
[Wear ヘルスサービス] パネルが開き、さまざまな Android 搭載デバイスで利用可能なセンサーのリストが表示されます。
パネルが開いたら、次の操作を行うことができます。
- [標準機能] と [すべての機能](デフォルト)を切り替えて、次のエクササイズで有効にする機能のセットを選択します。チェックボックスをオンまたはオフにすることで、個々の機能を有効または無効にできます。[適用] を選択すると、現在の機能リストがエミュレートされたデバイスに送信されます。[リセット] を選択すると、機能リストがデフォルトのオン / オフ値に復元されます。
- [イベントをトリガー] プルダウン ボタンを選択すると、さまざまなユーザー イベントをトリガーできます。ここから、フィットネス アクティビティの自動一時停止/再開をトリガーしたり、ユーザーによる睡眠イベントをトリガーしたり、ユーザーがゴルフ場やミニゴルフ場で打ったゴルフショットをトリガーしたりできます。
- エミュレータにインストールされているアプリでエクササイズを開始した後、センサー値をオーバーライドします。さまざまなエクササイズ指標の新しい値を入力したら、[適用] を選択して、これらの値をエミュレータと同期します。これは、アプリがさまざまな運動条件やユーザーのフィットネス傾向をどのように処理するかをテストするのに役立ちます。
エミュレータで合成データを生成する
センサー パネルなしでアプリを実行し、エミュレータでデータを自動的に生成することもできます。
アプリ内コントロールを使用して、合成データの生成を開始、一時停止、終了します。
また、エミュレータは各エクササイズに対して同じデータ値を生成することにも注意してください。
イベントをシミュレートする
エミュレータでは、AUTO_PAUSE_DETECTED
などのさまざまなイベントをシミュレートできます。次のコマンドを使用して、これらのイベントをトリガーできます。
adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices
合成イベント
イベント |
キー |
---|---|
自動一時停止が検出されました |
|
自動再開が検出されました |
|
転倒を検出しました |
|
睡眠が検出されました |
|
Sleep-Stop Detected(睡眠停止を検出しました) |
|
ゴルフ ショットが検出されました |
|
たとえば、次のコマンドを使用して自動一時停止イベントをトリガーできます。
adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices
ゴルフ ショット イベントの場合は、次の表に示すように、ゴルフ ショットのスイングタイプの追加パラメータを指定する必要があります。
ゴルフショットのスイングの種類 |
パラメータ |
---|---|
スイング パット タイプ |
パット |
スイング部分タイプ |
partial |
Swing Full Type |
完全 |
ゴルフショット イベントを指定した後で、ゴルフショットのスイングタイプを追加します。
adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \ "golf-swing-type-parameter" com.google.android.wearable.healthservices
たとえば、次のコマンドは部分的なゴルフショットをトリガーします。
adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \ com.google.android.wearable.healthservices
Wear OS 3 で合成データを使用する
Wear OS 3 を実行するエミュレータでテストする場合は、合成データを使用してアプリをテストすることもできます。
合成データ生成を有効にする
Wear OS 3 で合成データの生成を有効にする手順は次のとおりです。
- 開発者向けオプションを有効にします。
合成モードを有効にするには、次の
adb
コマンドを発行します。adb shell am broadcast \ -a "whs.USE_SYNTHETIC_PROVIDERS" \ com.google.android.wearable.healthservices
合成データ生成が有効になったら、このページで説明するコマンドを発行して「合成ユーザー」の動作を制御します。
合成データ生成を無効にする
実際のセンサーを使用するように戻すには、次のコマンドを実行します。
adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices
合成エクササイズ
ヘルスサービスは次のエクササイズの種類をサポートしています。
- ウォーキング:
whs.synthetic.user.START_WALKING
- ランニング:
whs.synthetic.user.START_RUNNING
- ハイキング:
whs.synthetic.user.START_HIKING
- 水泳:
whs.synthetic.user.START_SWIMMING
- トレッドミル ランニング:
whs.synthetic.user.START_RUNNING_TREADMILL
エクササイズでは、次のデータ型について現実的な合成データが生成されます。
- 心拍数
- 1 分あたりの歩数
- GPS 位置情報(単一のデフォルト ルートを使用)
- アクティビティの期間
- 高度と階数
さらに、以下の状態を生成できます。
- 睡眠状態 - 睡眠または覚醒
- 転倒検出
開始する
エクササイズのシミュレーションを開始するには、com.google.android.wearable.healthservices
に対して適切なブロードキャストを発行します。
# start the "walking" synthetic exercise
$ adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices
各アクティビティには、サポートされている指標のプリセットがあります。
アクティビティ | 心拍数 | 平均速度 | 高度の変化 | 位置情報の使用 |
---|---|---|---|---|
ウォーキング | 120 bpm | 1.4 m/sec | 20.0 m/min | ○ |
ランニング | 170 bpm | 2.3 m/sec | 20.0 m/min | ○ |
ハイキング | 150 bpm | 1.3 m/sec | 20.0 m/min | ○ |
水泳 | 150 bpm | 1.6 m/sec | 0.0 m/min | ○ |
トレッドミル ランニング | 160 bpm | 2.3 m/sec | 20.0 m/min | × |
停止する
合成アクティビティを停止するには、次のコマンドを使用します。
adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices
カスタム
生成される指標をきめ細かく制御するには、アクション文字列 whs.synthetic.user.START_EXERCISE
を使用してカスタム エクササイズ アクティビティを開始します。以下のフラグを自由に組み合わせて指定できます。
--ei exercise_options_duration_secs <int>
: エクササイズの継続期間(秒)。デフォルト:0
。--ei exercise_options_heart_rate <int>
: 1 分あたりの心拍数。平均:70
。--ef exercise_options_average_speed <float>
: 平均速度(メートル/秒)。これは 1 分あたりの歩数(ケイデンス)にも影響します。デフォルト:0
。--ez exercise_options_use_location <boolean>
: エクササイズ中に位置情報を出力するかどうか(デフォルト ルートを使用)。デフォルト:false
。--ef exercise_options_max_elevation_rate <float>
: 1 分あたりの最大高度変化率(メートル/分)。デフォルト:0
。
たとえば、エクササイズ オプションを次のように設定します。
adb shell am broadcast \
-a "whs.synthetic.user.START_EXERCISE" \
--ei exercise_options_heart_rate 90 \
--ef exercise_options_average_speed 1.2 \
--ez exercise_options_use_location true \
com.google.android.wearable.healthservices
実際のハードウェアまたはエミュレートしたハードウェアが特定のデータ型をサポートしているかどうかにかかわらず、使用可能なデータ型を変更することもできます。たとえば、次のスニペットに示すように、絶対高度を有効または無効にできます。
# enable synthetic mode and enable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation true \
com.google.android.wearable.healthservices
# enable synthetic mode and disable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation false \
com.google.android.wearable.healthservices
その他の状態とイベント
睡眠状態
合成ユーザーの睡眠状態をトリガーすることもできます。睡眠と覚醒の 2 つの状態がサポートされています。
睡眠状態に入るには、次のコマンドを実行します。
adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices
覚醒状態に入るには、次のコマンドを実行します。
adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices
転倒検出
転倒をシミュレートするには、次のコマンドを実行します。
adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices
ヘルスサービスが転倒イベントを送信するまでに最大 1 分かかる場合があります。
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- SourceType
- ArithmeticExpression
- ListConfiguration