Health

  
以跨平台技術建構高效能的健康類別應用程式。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2022 年 10 月 24 日 - - 1.0.0-beta01 -

宣告依附元件

如要為 Health 新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
    implementation "androidx.health:health-services-client:1.0.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.health:health-services-client:1.0.0-beta01")
}

意見回饋

您的意見可協助我們改善 Jetpack。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

Health Connect 用戶端 1.0 版

1.0.0-alpha04 版本

2022 年 8 月 24 日

截至 1.0.0-alpha04 版本,androidx.health:health-connect-client 已遷移至 androidx.health.connect:connect-client。日後版本請使用 androidx.health.connect:connect-client,以及 Health Connect 頁面中的版本資訊。

如要遷移,只需將依附元件匯入從 androidx.health:health-connect-client:1.0.0-alpha03 變更為 androidx.health.connect:connect-client:1.0.0-alpha04 即可。

1.0.0-alpha03 版本

2022 年 7 月 27 日

發布 androidx.health:health-connect-client:1.0.0-alpha031.0.0-alpha03 版本包含以下修訂項目。

新功能

  • 新版 API 變更摘要:在讀取、寫入、匯總 API 中加入一組單元。應用程式現在可以使用自選的單位擷取或寫入記錄,例如 NutritionRecord 營養素的克數或毫克數。

API 變更

  • 在多個不同的要求回應物件中將 List<DataOrigin> 修正為 Set<DataOrigin> (I42342)
  • 修正「能源 -> 能量」的基礎總卡路里單位 (I0b429)。
  • 將系列範例類別移至系列記錄中 (Ica9bb):
    • CyclingPedalingCadence -> CyclingPedalingCadenceRecord.Sample
    • HeartRate -> HeartRateRecord.Sample
    • StepsCadence -> StepsCadenceRecord.Sample
  • 淘汰 HealthDataRequestPermission 類別,改用 PermissionController.createRequestPermissionActivityContract。此變更可提升可偵測性及統一參數化 (I81e7f)。
  • 在「體積」中加入美制液體盎司 (I5f03d)。
  • 新增「速度」單位類型 (I1d574)
  • 新增「百分比」單位類型 (I08f23)
  • 新增「壓力」單位類型 (Ifb01f)
  • 新增「質量」單元類型 (Ifd81a)
  • 新增「體積」單元類型 (I59ad1)
  • 新增「能源」單元類型。將「能源」系列範例類別移至 PowerRecord 類別中 (I5b1e5)
  • 新增「能量」單位類型 (I983ae)
  • 新增「溫度」單位類型 (I4cdb5)
  • 重新命名「運動」特有的「活動」參考資料,包括 (I3f936):
    • 重新命名 ActivityLap -> ExerciseLapRecord
    • 重新命名 ActivityEvent -> ExerciseEventRecord
    • 重新命名 Repetitions -> ExerciseRepetitionsRecord
    • 重新命名 ActivitySession -> ExerciseSessionRecord
  • 移動在記錄下建立巢狀結構的套裝中繼資料 (Ie0835)。
  • 在所有剩餘記錄中使用「長度」單位 (Ib10dd):
    • ActivityLapRecord
    • ElevationGainedRecord
    • HeightRecord
    • HipCircumferenceRecord
    • WaistCircumferenceRecord
  • 新增「長度」單位類型 (Idae39)
  • 更新 CervicalMucus 說明詞彙 (I25a2b):
    • CervicalMucus.Amount -> CervicalMucusRecord.Texture
    • CervicalMucus.Appearance -> CervicalMucusRecord.Sensation
  • 在所有記錄類別名稱中新增「Record」字尾 (I1ffc2)

修正錯誤

  • 修正使用變種版本建構程式庫,且 minifyEnabled 設為 True 時的 ProGuard 問題 (I78933)。
  • 隱藏不開放公開使用的文件 (I7a08f)。
  • 修正用戶端有專屬 Protobuf 依附元件時的問題 (https://android-review.googlesource.com/c/platform/frameworks/support/+/2105430)。

1.0.0-alpha02 版本

2022 年 6 月 1 日

androidx.health:health-connect-client:1.0.0-alpha02 發布。1.0.0-alpha02 版包含以下修訂項目。

API 變更

  • 淘汰了 AggregationResult 中的 hasMetricgetMetric,新增了 contains 和 get 運算子 (I7cc7c)
  • 新增 OvulationTest.Result.HIGHOvulationTest.Result.INCONCLUSIVE。(I9f9c4)

修正錯誤

  • 將 SDK 規定縮減到 26。(I6d201)

1.0.0-alpha01 版本

2022 年 5 月 11 日

發布 androidx.health:health-connect-client:1.0.0-alpha011.0.0-alpha01 版本包含以下修訂項目。

新功能

  • 提供相關 API,用於讀取其他應用程式提供的健身與健康記錄。
  • 提供相關 API,用於寫入健身和健康記錄,以便與其他應用程式共用。
  • 提供相關 API,用於擷取可存取記錄的匯總指標。
  • 提供相關 API,用於擷取其他應用程式的記錄漸進式變更內容 (插入、更新或刪除)。
  • 提供相關 API,用於提示使用者授予應用程式健康服務權限。
  • 提供相關 API,用於檢查權限或撤銷已授予應用程式的健康服務權限。

健康照護服務用戶端 1.0 版

1.0.0-beta01 版本

2022 年 10 月 24 日

發布了 androidx.health:health-services-client:1.0.0-beta011.0.0-beta01 版本包含以下修訂項目。

新功能

  • 新增了透過 PassiveMonitoringClient 監聽運作狀態事件的功能 (第一個事件為 HealthEvent.FALL_DETECTED)。

  • 全新 ExerciseTypes:

    • ALPINE_SKIING
    • BACKPACKING
    • CROSS_COUNTRY_SKIING
    • HORSE_RIDING
    • INLINE_SKATING
    • MOUNTAIN_BIKING
    • ORIENTEERING
    • ROLLER_SKATING
    • YACHTING
  • 全新 DataTypes:

    • ELEVATION_LOSS
    • GOLF_SHOT_COUNT

API 變更

  • 更新了資料的模擬方式:資料模型以及 DataTypeDataPoint 及其基礎值的表示方式經過改良。頂層影響在於 API 現在更加明確且安全。
  • 位置 DataPoint 不再以 DoubleArray 表示,而是以強類型輸入 LocationData 物件表示。
  • 移至一組新的被動事件監聽器 API:
    • 廣播已由 PassiveListenerService 取代。
    • 現有的事件監聽器已由單一事件監聽器取代:PassiveListenerCallback
  • 已將 <queries> 標記新增至 Health Services 資訊清單,使應用程式不再需要在其資訊清單中指定這個標記 (前提是在建構系統中已開啟資訊清單合併功能)。
  • 遠離數量較多的 ExerciseState 以代表運動即將結束/已結束,並新增運動狀態 ENDINGENDED。這些狀況現在會與 ExerciseEndReason 結合,以代表先前狀態的完整色調。
  • PassiveListenerConfig setPassiveGoals 重新命名為 setDailyGoals,以更好地反映僅支援每日被動目標。
  • PassiveGoal 現在一律為 REPEATED,已移除被動 TriggerFrequency
  • 使用 @FloatRange 為所有 LongDouble 參數加上註解。
  • ExerciseConfig 新增了 swimmingPoolLengthMeters 屬性,可視需要指定該屬性來改善泳池游泳距離計算。
  • 淘汰了 ExerciseUpdate.activeDuration。請改用 ExerciseUpdate.activeDurationCheckpoint
  • 已將 ExerciseClient 中的 API flushExerciseAsync() 重新命名為 flushAsync()
  • Measure.registerCallback 已重新命名為 Measure.registerMeasureCallback
  • 一般命名方式變更:
    • 距離屬性現在有 meters 字尾。
    • 回呼方法名稱現在已過時。
    • 已移除大部分縮寫 (HrAccuracy 現在是 HeartRateAccuracy)。
    • 模式 enableFoo 後的屬性現已命名為 isFooEnabled
  • 已從 Enum 遷移。
  • Double 代表的時間現在以 Duration 表示。
  • 傳回 ListenableFuture<Void?> 的函式現在會傳回 ListenableFuture<Void>
  • 接受回呼的函式現在一律會將回呼顯示為最後一個參數。
  • 現在有建構工具的類別也一律會有公開建構函式。
  • 註冊函式不會再傳回 ListenableFuture,而是將註冊狀態傳遞至提供的回呼。
  • KDocs 現已得到改善。
  • 公開類別不會再擴充 ProtoParcelable

修正錯誤

  • 全面改善 IPC 穩定性 (I3b1e2)

1.0.0-alpha03 版本

2021 年 11 月 3 日

發布 androidx.health:health-services-client:1.0.0-alpha031.0.0-alpha03 版本包含以下修訂項目。

新功能

  • 如果與健康照護服務 APK 的處理序間通訊 (IPC) 連線中斷,SDK 會自動重新登錄測量、運動事件監聽器和被動監控回呼登錄要求。

API 變更

  • 目前只有 Wear3 支援健康照護服務用戶端,因此 SDK 程式庫的 minSdkVersion 已提升至 API 級別 30。

1.0.0-alpha02 版本

2021 年 9 月 29 日

發布了 androidx.health:health-services-client:1.0.0-alpha021.0.0-alpha02 版包含以下修訂項目。

API 變更

  • ExerciseClient 現在支援為運動做準備,讓用戶端在您開始運動前先讓感應器就緒,並等待前置作業完成,例如讓全球衛星定位系統確認好位置資訊。
  • 導入 CumulativeDataPoints 和 StatisticalDataPoints AggregateDataPoint 類別,以更有效模擬運動期間追蹤的匯總指標。CumulativeDataPoints 會留存匯總間隔資料類型的累積值 (例如運動期間的總距離),而 StatisticalDataPoints 會模擬取樣資料點的匯總值 (例如 HeartRateBpm 的最小值、最大值和平均值)。這會取代先前的 AGGREGATE_* DataType,並可透過 getLatestAggregateMetrics() 在 ExerciseUpdate 中存取。系統已不再支援 AGGREGATE_* DataType。
  • PassiveMonitoring 事件已重新命名為 PassiveGoals,後者支援目標設定,以及在特定資料類型 (例如 DAILY_STEPS 等每日指標) 達標時收到通知。
  • 導入新的 HrAccuracy、LocationAccuracy 和 LocationAvailability 類別,以提升心率/位置資訊準確度與可用性的模擬成效。
  • 改善 ExerciseConfig 和新 PassiveMonitoringConfig 欄位的命名方式,並且導入 ExerciseConfig.shouldEnableGps 以要求取得採用全球衛星定位系統的資料。

修正錯誤

  • 遷移至採用 proto 的處理序間通訊 (IPC) 傳輸,以改善回溯相容性支援。

1.0.0-alpha01 版本

2021 年 5 月 18 日

發布 androidx.health:health-services-client:1.0.0-alpha011.0.0-alpha01 版本包含以下修訂項目。

初始版本的功能

健康照護服務程式庫提供一組統一的 API,可讓開發人員在實作裝置專屬的感應器時,加以整合運用。這個程式庫本身支援 Wear OS 3 模擬器和即將推出的裝置,未來還會支援其他平台。此初始版本包含三個頂層 API 介面:ExerciseClientPassiveMonitoringClientMeasureClient

ExerciseClient

ExerciseClient 是專為可追蹤有效健身活動的應用程式而打造,最多可支援 82 種不同的 ExerciseType,包括步行、跑步、舞蹈和水球等。視運動類型和裝置的可用硬體而定,您追蹤這些運動時可選用 50 種不同的 DataType。如要開始使用,請在 ExerciseConfig 中指定相關資訊,呼叫 exerciseClient.startExercise,然後透過更新事件監聽器監聽作業進度。

PassiveMonitoringClient

如果您的應用程式會追蹤使用者ㄧ整天的活動,PassiveMonitoringClient 就會是絕佳選擇。您可以使用一組 DataType 登錄 PendingIntent,並由系統喚醒來處理批次變更。或者,您也可以指定 Event,例如使用者行走達到特定步數。

MeasureClient

有時使用者需要取得當下的測量資料 (例如心率),而不是運動時或一整天的測量資料。在這類情況下,MeasureClient 會是最適合的選擇。只要使用支援的 DataType 登錄回呼以接收資料串流,然後在不需要時取消登錄回呼即可。