Wear OS 上的健康服務

Stay organized with collections Save and categorize content based on your preferences.

Wear OS 3 (對應 API 級別 30) 包含稱為「健康照護」的服務。健康照護服務是裝置上各種感應器和相關演算法的中介平台,為應用程式提供與活動、運動和健康相關的高品質資料。

如需健身應用程式範例,請參閱 GitHub 上的健康照護服務範例存放區

健康照護服務如何協助應用程式開發人員

如果沒有健康照護服務,應用程式必須連結至一或多個感應器、正確設定每個感應器、接收原始感應器資料,並使用其演算法取得有意義的資訊。舉例來說,應用程式可以註冊 Sensor.TYPE_PRESSURE 的更新以取得目前的氣壓,以便用於計算目前的海拔高度並隨時間匯總這些資料,顯示使用者活動時段的海拔高度變化。

健康服務會自動根據用途,妥善設定所有運動和健康相關的感應器,作為相關用途、收集感應器資料,及計算心率、距離、卡路里、海拔、樓層、速度、配速等指標。應用程式可以直接從健康照護服務登記這項資料。

有了健康照護服務

使用健康照護服務的好處包括:

  • 善用平台上原生執行的強大演算法。
  • 使用健康照護服務中的感應器設定對電池效能進行最佳化處理,藉此節省電池電力。
  • 未來的 Wear 3 裝置專用應用程式 在所有 Wear 3 裝置上的健康照護服務 API 一致,因此可讓應用程式保持在最新狀態。
  • 使用標準化平台運算,確保同一裝置上的所有應用程式的資料一致性。
  • 啟用活動感知體驗,包括偵測從其他應用程式啟動的進行中運動。

這些措施都可讓開發人員專注於開發獨特的功能和使用者體驗,同時藉助平台以高效的方式提供可靠且一致的指標。

健康照護服務概念

透過健康服務進行開發時,請注意下列概念。

資料類型

健康照護服務會從裝置所有可用的來源收集多種資料並提供,以及持續更新。這些資料類型分為兩種廣泛類別:在單一時間點取樣 (例如 HEART_RATE_BPM) 和每一段時間收集一次資料 (例如 DISTANCE)。

活動

當使用者達到特定目標狀態或事件時,應用程式會收到事件。舉例來說,使用者可以在運動應用程式中登記目標距離,並在使用者跑了特定距離後應用程式會通知他們。或者,當使用者達成某些步數或入睡時,請使用被動目標。

運動類型

健康照護服務會將運動視為優先功能,並支援多種 ExerciseType (例如跑步或滑雪)。在運動期間,健康照護服務會收集所選 DataType 的指標,並回報給管理運動的應用程式。

詳情請參閱運動類型的完整清單。

使用健康照護服務建立應用程式

請以下列各節所述的方式,使用健康照護服務建立應用程式。

被動體驗

透過 PassiveMonitoringClient,您的應用程式為 BroadcastReceiver 提供 ComponentName,以接收特定資料類型或事件的更新。這適用於長期更新資料 (其相對資料較少且分散)。

詳情請參閱「被動資料更新」一文。

使用中的體驗

使用 MeasureClient 時,您的應用程式會記錄監聽器,以便快速接收資料更新。這項功能適用於短期體驗,例如當使用者查看應用程式 UI 時。應用程式必須盡量減少記錄監聽器所花費的時間,因為應用程式會增加感應器取樣率,從而增加耗電量。這個 API 不適用於背景擷取或健身追蹤。舉例來說,MeasureClient 可用於測量血氧水平 (SpO2) 的應用程式。

透過 ExerciseClient,應用程式可以管理使用者的運動、設定運動目標,並監聽目前運動狀態的最新資訊。只要運動是由您的應用程式管理,應用程式也可以透過這個 API 快速接收資料更新。ExerciseClient 可用於各種應用程式,例如跑步應用程式,以便記錄您的跑步情形、在裝置上顯示即時指標,以及記錄資料以供進一步分析。

詳情請參閱「有效資料和運動」。

使用綜合資料進行測試

如要測試應用程式是否正在接收來自健康照護服務的資料更新,請手動設定裝置以發出資料,就如同使用者參與運動時一樣。

詳情請參閱「使用合成資料進行測試」。