使用健康照護服務模擬感應器資料

使用 Wear OS 產生的健康照護服務綜合資料測試應用程式,就像真的在運動一樣。

如果是在執行 Wear OS 3 (API 級別 30) 以上版本的模擬器上測試,可以使用模擬器產生的合成資料。如要進一步瞭解 Wear OS 3 以上版本合成資料生成方式的差異,請參閱下列指南。

在 Wear OS 4 以上版本使用合成資料

如果您在搭載 Wear OS 4 (API 級別 33) 以上版本的模擬器上進行測試,可以使用模擬器產生的合成資料測試應用程式。與舊版 Wear OS 的合成資料產生方式相比,這項功能有許多改良之處:

  • 在 Wear OS 4 以上版本中,生成合成資料的程序會整合至健康照護服務 API 生命週期。也就是說,您不需要使用 adb 指令啟動或停止運動。而是像使用者一樣,在應用程式中開始或停止運動。

  • 擴大支援運動事件:您可以模擬接收自動暫停和繼續事件跌倒事件睡眠偵測高爾夫揮桿偵測

使用健康照護服務感應器面板

Android Studio Koala 功能推送 (Canary) 包含 Wear OS 健康照護感應器面板。這個面板可用於模擬裝置是否具備特定感應器功能,這對在 Wear OS 上建構健身應用程式時的測試非常重要。

您也可以使用面板變更指標值,並觀察應用程式的調整方式。

如要開啟及使用面板,請按照下列步驟操作:

  1. 建立或開啟 Android 虛擬裝置 (AVD),然後在模擬器上執行應用程式
  2. 在模擬器面板中,選取「Wear 健康服務」開啟「Wear 健康照護服務」面板 系統會開啟「Wear 健康照護服務」面板,顯示不同 Android 裝置可用的感應器清單。

面板開啟後,你可以執行下列操作:

  • 在「標準功能」和「所有功能」 (預設) 之間切換,選擇要在下次運動時啟用的功能組合。選取核取方塊即可啟用或停用個別功能。選取「套用」,將目前的功能清單傳送至模擬裝置,然後選取「重設」,將功能清單還原為預設的開啟/關閉值。
  • 選取「觸發事件」下拉式選單按鈕後,觸發不同的使用者事件。您可以在這裡觸發自動暫停/繼續健身活動、觸發睡眠事件,以及觸發高爾夫球擊球,包括使用者在高爾夫球場或迷你高爾夫球場擊球。
  • 在模擬器上安裝的應用程式中開始運動後,即可覆寫感應器值。輸入不同運動指標的新值後,選取「套用」,將這些值與模擬器同步。這項功能有助於測試應用程式如何處理不同的運動狀況和使用者的健身趨勢。

使用模擬器產生合成資料

您也可以在沒有感應器面板的情況下執行應用程式,讓模擬器自動產生資料。

使用應用程式內建的控制項,即可開始、暫停及結束合成資料生成作業。

另請注意,模擬器會為每項運動產生相同的資料值。

模擬事件

您可以在模擬器中模擬各種事件,例如 AUTO_PAUSE_DETECTED。您可以使用下列指令觸發這些事件:

adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices

合成事件

活動

偵測到自動暫停

whs.AUTO_PAUSE_DETECTED

偵測到自動繼續播放

whs.AUTO_RESUME_DETECTED

偵測到跌倒

whs.FALL_OVER

偵測到睡眠

whs.START_SLEEPING

偵測到睡眠停止

whs.STOP_SLEEPING

偵測到高爾夫球擊球

whs.GOLF_SHOT

舉例來說,您可以使用下列指令觸發自動暫停事件:

​​adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices

如果是高爾夫球擊球事件,您應指定高爾夫球擊球揮桿類型的額外參數,如下表所示:

表 1:事件及其鍵

高爾夫球揮桿類型

參數

揮桿推桿類型

推桿

Swing Partial Type

partial

Swing Full Type

100%

指定高爾夫球擊球事件後,請新增高爾夫球擊球揮桿類型:

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 上啟用合成資料生成功能,請完成下列步驟。

  1. 啟用開發人員選項
  2. 發送以下 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

這些運動會產生下列資料類型的實際綜合資料:

  • 心率
  • 每分鐘步數
  • GPS 位置 (使用單一預設路徑)
  • 活動持續時間
  • 高度與樓層數

此外,還可以產生下列狀態:

  • 睡眠狀態:睡著或清醒
  • 跌倒偵測

Start

如要開始模擬運動,請向 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 公尺/秒 20.0 公尺/分 true
執行中 170 bpm 2.3 公尺/秒 20.0 公尺/分 true
健行 150 bpm 1.3 公尺/秒 20.0 公尺/分 true
游泳 150 bpm 1.6 公尺/秒 0.0 公尺/分 true
在跑步機上跑步 160 bpm 2.3 公尺/秒 20.0 公尺/分

停止

請使用以下指令停止綜合活動:

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>:心率,單位為每分鐘心跳數。平均值:70
  • --ef exercise_options_average_speed <float>:平均速度,單位為每秒公尺數。這個標記也會影響每分鐘步數或「頻率」。預設值:0
  • --ez exercise_options_use_location <boolean>:是否要在運動期間使用預設路徑發出位置資料。預設值:false
  • --ef exercise_options_max_elevation_rate <float>:可能的高度變更率上限,單位為每分鐘公尺數。預設值: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

其他狀態和事件

睡眠狀態

您也可以觸發合成資料使用者的睡眠狀態。系統支援兩個狀態:睡眠與清醒。

如要進入睡著狀態,請執行下列指令:

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

健康照護服務最多需要一分鐘才能傳送跌倒事件。