健康度
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 12 月 11 日 | - | 1.0.0-rc02 | - | 1.1.0-alpha05 |
宣告依附元件
如要為 Health 新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 build.gradle
檔案中,新增您需要的構件依附元件:
Groovy
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha03" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha03") }
意見回饋
您的意見可協助我們改善 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-alpha03
。1.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
中的hasMetric
和getMetric
,新增了 contains 和 get 運算子 (I7cc7c) - 新增
OvulationTest.Result.HIGH
和OvulationTest.Result.INCONCLUSIVE
。(I9f9c4)
修正錯誤
- 將 SDK 規定縮減到 26。(I6d201)
1.0.0-alpha01 版
2022 年 5 月 11 日
發布 androidx.health:health-connect-client:1.0.0-alpha01
。1.0.0-alpha01 版包含此連結所列的修訂項目。
新功能
- 提供相關 API,用於讀取其他應用程式提供的健身與健康記錄。
- 提供相關 API,用於寫入健身和健康記錄,以便與其他應用程式共用。
- 提供相關 API,用於擷取可存取記錄的匯總指標。
- 提供相關 API,用於擷取其他應用程式的記錄漸進式變更內容 (插入、更新或刪除)。
- 提供相關 API,用於提示使用者授予應用程式健康服務權限。
- 提供相關 API,用於檢查權限或撤銷已授予應用程式的健康服務權限。
健康照護服務用戶端 1.1 版
1.1.0-alpha05 版本
2024 年 12 月 11 日
發布 androidx.health:health-services-client:1.1.0-alpha05
、androidx.health:health-services-client-external-protobuf:1.1.0-alpha05
和 androidx.health:health-services-client-proto:1.1.0-alpha05
。1.1.0-alpha05 版本包含這些修訂項目。
新功能
- 現在已納入 ProGuard 規則,可避免系統移除必要的類別。(65d0c3f)。
修正錯誤
- 這個程式庫現在使用 JSpecify 空值註解,這是類型用法。Kotlin 開發人員應使用下列編譯器引數,強制執行正確的用法:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(Iaf73a、b/326456246)
1.1.0-alpha04 版本
2024 年 10 月 16 日
發布 androidx.health:health-services-client:1.1.0-alpha04
、androidx.health:health-services-client-external-protobuf:1.1.0-alpha04
和 androidx.health:health-services-client-proto:1.1.0-alpha04
。1.1.0-alpha04 版包含這些修訂版本。
安全性修正項目
- 自這項異動起,androidx 會針對 protobuf 4.28.2 進行編譯,以解決 CVE-2024-7254 問題。請將
androidx.health:health-services-client
的依附元件升級至最新的 1.1.0-alpha04,以解決安全漏洞風險。
1.1.0-alpha02 版本
2023 年 12 月 13 日
發布 androidx.health:health-services-client:1.1.0-alpha02
。查看 1.1.0-alpha02 版的修訂項。
API 變更
- 請為支援的
ExerciseEvent
使用單一可靠資料來源。(I03308)。
修正錯誤
- 修正小錯誤並改善文件。
1.1.0-alpha01 版本
2023 年 8 月 9 日
發布 androidx.health:health-services-client:1.1.0-alpha01
。1.1.0-alpha01 版包含以下修訂項目。
新功能
ExerciseEvent
API 已與第一個具體事件一併新增:GolfShotEvent
。ExerciseEvent
基本元素可讓開發人員查詢支援,並在手錶偵測到某些事件時要求接收通知。GolfShotEvent
就是一個例子,除了接收系統辨識的揮桿類型,開發人員還能收到使用者揮桿時的通知。
API 變更
- 讓 WHS SDK 用戶端使用
GolfShotEvent
功能。(I76b03)
修正錯誤
- 請勿在看到不明的運動事件功能時,積極擲回例外狀況,而是從清單中篩除該功能。(I06afc)。
健康照護服務用戶端 1.0 版
1.1.0-alpha03 版本
2024 年 5 月 14 日
發布 androidx.health:health-services-client:1.1.0-alpha03
。1.1.0-alpha03 版本包含這些修訂版本。
新功能
- 推出
DebouncedGoal
API,可在運動期間使用去抖動功能 (initialDelay
和durationAtThreshold
) 追蹤範例資料類型或統計資料範例資料類型的目標。I09be9 - 新增下列進階跑步指標範例和統計資料
DataTypes
。(I0b8b5):Ground Contact Time
Vertical Oscillation
Vertical Ratio
Stride Length
API 變更
- 已新增
ELEVATION_GAIN_DAILY
DataType
。(I059d1) - 已將
SWIM_LAP_COUNT_TOTAL
DataType
新增為SWIM_LAP_COUNT
的匯總DataType
。(I0beeb)。
修正錯誤
- 修正各種問題,提升 IPC 可靠性。
1.0.0-rc02 版
2024 年 4 月 3 日
發布 androidx.health:health-services-client:1.0.0-rc02
。1.0.0-rc02 版包含這些修訂項目。這是僅修正錯誤的版本,不含 API 變更。
修正錯誤
- 修正各種問題,提升 IPC 可靠性
- 修正同時呼叫
startExercise
和prepareExercise
可能導致ConcurrentModificationException
的問題 (4e37773) - 改善說明文件
1.0.0-rc01 版
2023 年 7 月 26 日
發布 androidx.health:health-services-client:1.0.0-rc01
。查看 1.0.0-rc01 版的修訂項。
新功能
- 在 Beta 版穩定後,Health Services 已改為 1.0.0-rc01。
API 變更
- 已合併 h 到 m 路徑的公開和實驗性 API 檔案。(Ic4630、b/278769092)。
- 不適用,API 檔案變更只是重新排序方法。(I5fa95)。
1.0.0-beta03 版
2023 年 4 月 5 日
發布 androidx.health:health-services-client:1.0.0-beta03
。1.0.0-beta03 版包含此連結所列的修訂項目。
新功能
BatchingMode
現在可設定為在設定的間隔 (而非在活動健身期間的預設間隔) 傳送批次運動資料,例如在運動開始時透過 ExerciseConfig
或在期間使用覆寫方法。這項功能將在 Google Play 商店的即將推出的 Health Services 版本中啟用,您可以透過運動功能確認。注意:批次模式會在裝置處於非互動電源狀態時生效,並導致耗電量增加。
API 變更
- 在暫停函式
overrideBatchingModesForActiveExercise
失敗時擲回HealthServicesException
(Ifd387) - 為非同步
overrideBatchingModesForActiveExercise
API 導入暫停函式,讓 API 更適合 Kotlin (I7dd15) BatchingMode
在ExerciseConfig
中覆寫選用項目 (Id22e9)
修正錯誤
DataType
和ExerciseUpdate
小修正 (5e185f)
1.0.0-beta02 版
2023 年 1 月 11 日
發布 androidx.health:health-services-client:1.0.0-beta02
。查看 1.0.0-beta02 版的修訂項。
新功能
- 在
ExerciseClient
、PassiveMonitoringClient
和MeasureClient
中,為現有的非同步ListenableFuture
API 新增suspend
擴充功能函式,改善 Kotlin 支援功能 (Iadea4)。 - 新增
ExerciseTypeConfig
API,可在運動中途啟用更新功能。新增GolfExerciseTypeConfig
,支援在高爾夫球運動期間更新ExerciseTypeConfig
(I4c539)。
API 變更
- 對暫停函式擲回
HealthServicesException
(I5e509) - 新增另一個具回溯相容性的建構函式 (Iddeda)
- 對暫停函式擲回
RuntimeException
(I53bca) - 移除預設的擲回例外狀況實作方式 (Id947f)
- 新增
@JvmDefaultWithCompatibility
註解 (I8f206)
修正錯誤
1.0.0-beta01 版
2022 年 10 月 24 日
發布 androidx.health:health-services-client:1.0.0-beta01
。1.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 變更
- 更新了資料的模擬方式:資料模型以及
DataType
、DataPoint
及其基礎值的表示方式經過改良。頂層影響在於 API 現在更加明確且安全。 - 位置
DataPoint
不再以DoubleArray
表示,而是以強類型輸入LocationData
物件表示。 - 移至一組新的被動事件監聽器 API:
- 廣播已由
PassiveListenerService
取代。 - 現有的事件監聽器已由單一事件監聽器取代:
PassiveListenerCallback
。
- 廣播已由
- 已將
<queries>
標記新增至 Health Services 資訊清單,使應用程式不再需要在其資訊清單中指定這個標記 (前提是在建構系統中已開啟資訊清單合併功能)。 - 遠離數量較多的
ExerciseState
以代表運動即將結束 / 已結束,並新增運動狀態ENDING
和ENDED
。這些狀況現在會與ExerciseEndReason
結合,以代表先前狀態的完整色調。 - 將
PassiveListenerConfig
setPassiveGoals
重新命名為setDailyGoals
,以更好地反映僅支援每日被動目標。 PassiveGoal
現在一律為REPEATED
,已移除被動TriggerFrequency
。- 使用
@FloatRange
為所有Long
和Double
參數加上註解。 - 在
ExerciseConfig
新增了swimmingPoolLengthMeters
屬性,可視需要指定該屬性來改善泳池游泳距離計算。 - 淘汰了
ExerciseUpdate.activeDuration
。改用ExerciseUpdate.activeDurationCheckpoint
。 - 已將
ExerciseClient
中的 APIflushExerciseAsync()
重新命名為flushAsync()
。 Measure.registerCallback
已重新命名為Measure.registerMeasureCallback
。- 一般命名方式變更:
- 距離屬性現在有
meters
字尾。 - 回呼方法名稱現在已過時。
- 已移除大部分縮寫 (
HrAccuracy
現在是HeartRateAccuracy
)。 - 模式
enableFoo
後的屬性現已命名為isFooEnabled
。
- 距離屬性現在有
- 已從 Enums 遷移。
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-alpha03
。1.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-alpha02
。1.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-alpha01
。1.0.0-alpha01 版本包含以下修訂項目。
初始版本的功能
健康照護服務程式庫提供一組統一的 API,可讓開發人員在實作裝置專屬的感應器時,加以整合運用。這個程式庫本身支援 Wear OS 3 模擬器和即將推出的裝置,未來還會支援其他平台。此初始版本包含三個頂層 API 介面:ExerciseClient
、PassiveMonitoringClient
和 MeasureClient
。
ExerciseClient
ExerciseClient
是專為可追蹤有效健身活動的應用程式而打造,最多可支援 82 種不同的 ExerciseType
,包括步行、跑步、舞蹈和水球等。視運動類型和裝置的可用硬體而定,您追蹤這些運動時可選用 50 種不同的 DataType
。如要開始使用,請在 ExerciseConfig
中指定相關資訊,呼叫 exerciseClient.startExercise
,然後透過更新事件監聽器監聽作業進度。
PassiveMonitoringClient
如果您的應用程式會追蹤使用者ㄧ整天的活動,PassiveMonitoringClient
就會是絕佳選擇。您可以使用一組 DataType
登錄 PendingIntent
,並由系統喚醒來處理批次變更。或者,您也可以指定 Event
,例如使用者行走達到特定步數。
MeasureClient
有時使用者需要取得當下的測量資料 (例如心率),而不是運動時或一整天的測量資料。在這類情況下,MeasureClient
會是最適合的選擇。只要使用支援的 DataType
登錄回呼以接收資料串流,然後在不需要時取消登錄回呼即可。