Health Connect

  
允許開發人員讀取或寫入使用者的健康與健身記錄。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2025 年 7 月 16 日 - 1.1.0-rc03 - -

要求存取資料類型

為協助強化使用者隱私權和安全性,與 Health Connect 整合的開發人員必須聲明應用程式使用的資料類型讀取和/或寫入權限。開發人員必須根據應用程式的用途,為所用資料類型加入有效的用途。詳情請參閱「提供健康應用程式聲明表單的資訊」和「Android 健康資料同步權限」。

宣告依附元件

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

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

Groovy

dependencies {
    // Use to implement health connects
    implementation "androidx.health.connect:connect-client:1.1.0-rc03"
}

Kotlin

dependencies {
    // Use to implement health connects
    implementation("androidx.health.connect:connect-client:1.1.0-rc03")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

健康資料同步測試版 1.0

1.0.0-alpha03 版本

2025 年 4 月 9 日

發布 androidx.health.connect:connect-testing:1.0.0-alpha03。1.0.0-alpha03 版包含這些修訂項目

修正錯誤

  • 如果未提供覆寫值,Metadata.populatedWithTestValues 會保留原始值。(I3ee27)
  • 只有在刪除現有記錄時,才更新變更記錄。(I74a16)

1.0.0-alpha02 版

2025 年 2 月 26 日

發布 androidx.health.connect:connect-testing:1.0.0-alpha02。1.0.0-alpha02 版包含這些修訂項目

API 變更

  • androidx.health.connect:connect-client:1.1.0-alpha12 (I1f7f1) 中導入中繼資料變更後,導入 MetadataTestHelper#populatedWithTestValues 以用於測試
  • 移除 connect-testing 中的 ExperimentalTestingApi 註解 (I97a57)
  • FakeHealthConnectClient 中的記錄和變更新增完整存根 (I15a4c)

1.0.0-alpha01 版

2024 年 9 月 4 日

發布 androidx.health.connect:connect-testing:1.0.0-alpha01。1.0.0-alpha01 版包含這些修訂項目

新功能

Health Connect 測試程式庫可簡化自動化測試的建立作業。您可以使用這個程式庫驗證應用程式的行為,並確認應用程式是否能正確處理手動測試難以涵蓋的特殊情況。

您可以使用這個程式庫建立本機單元測試,通常會驗證應用程式中與「健康資料同步」用戶端互動的類別行為。

程式庫的進入點是 FakeHealthConnectClient 類別,您可以在測試中使用這個類別取代 HealthConnectClient。這項功能具備以下特色:

  • 記錄的記憶體內表示法,方便您插入、移除、刪除及讀取記錄
  • 產生變更權杖和追蹤變更
  • 記錄和變更的分頁
  • 系統支援使用存根匯總回應
  • 允許任何函式擲回例外狀況
  • 可用於模擬權限檢查的 FakePermissionController

API 變更

  • 新增 FakeHealthConnectClient e8469
  • FakeHealthConnectClient e8469 新增 Stub 覆寫

1.1 版本

1.1.0-rc03 版

2025 年 7 月 16 日

發布 androidx.health.connect:connect-client:1.1.0-rc03androidx.health.connect:connect-client-external-protobuf:1.1.0-rc03androidx.health.connect:connect-client-proto:1.1.0-rc03。1.1.0-rc03 版包含這些修訂項目

修正錯誤

  • 修正了 DST 邊界上的匯總 IllegalArgumentException。(Ic9e4f)

1.1.0-rc02 版本

2025 年 6 月 4 日

發布 androidx.health.connect:connect-client:1.1.0-rc02androidx.health.connect:connect-client-external-protobuf:1.1.0-rc02androidx.health.connect:connect-client-proto:1.1.0-rc02。1.1.0-rc02 版包含這些修訂項目

修正錯誤

  • 新增支援缺少的裝置類型 (Ied486)
  • 更新正念練習權限字串 (I13ab5)

1.1.0-rc01 版本

2025 年 4 月 23 日

發布 androidx.health.connect:connect-client:1.1.0-rc01androidx.health.connect:connect-client-external-protobuf:1.1.0-rc01androidx.health.connect:connect-client-proto:1.1.0-rc01。1.1.0-rc01 版包含這些修訂項目

API 變更

  • 為開發人員新增正念功能適用情形旗標。(I936a8)

1.1.0-beta02 版

2025 年 4 月 9 日

發布 androidx.health.connect:connect-client:1.1.0-beta02androidx.health.connect:connect-client-external-protobuf:1.1.0-beta02androidx.health.connect:connect-client-proto:1.1.0-beta02。1.1.0-beta02 版包含這些修訂項目

新功能

  • 新增實驗性個人健康記錄 (PHR) API,可根據快速醫療照護互通資源 (FHIR®) 格式讀取及寫入醫療資料。PHR API 包括:
    • FEATURE_PERSONAL_HEALTH_RECORD 常數,用於透過功能可用性 API 檢查 PHR 是否可用。
    • 應用程式專用的 API,用於寫入醫療資料來源和記錄。
    • 應用程式可根據使用者授予的權限,透過 API 讀取醫療資料來源和記錄。
  • 新增實驗性正念練習記錄 API (I51c13),包括:
    • 應用程式專用的 API,可寫入正念練習的資料。
    • 應用程式可根據使用者授予的權限,透過 API 讀取正念練習記錄資料。

修正錯誤

  • 在 Android U 以上版本中,Jetpack 對 ElevationGainedRecordFloorsClimbedRecordHeartRateVariabilityRmssdRecordHeightRecordHydrationRecordLeanBodyMassRecordNutritionRecordOxygenSaturationRecordRespiratoryRateRecordRestingHeartRateRecordStepsRecordTotalCaloriesBurnedRecordVo2MaxRecordWeightRecordWheelchairPushesRecord 值的驗證作業,已改用平台驗證。(I0f40d)

1.1.0-beta01 版本

2025 年 3 月 12 日

發布 androidx.health.connect:connect-client:1.1.0-beta01androidx.health.connect:connect-client-external-protobuf:1.1.0-beta01androidx.health.connect:connect-client-proto:1.1.0-beta01。1.1.0-beta01 版包含這些修訂項目

修正錯誤

  • 在所有 Android 版本中,啟用所有匯總類型的計算。(I8edf)

1.1.0-alpha12 版本

2025 年 2 月 26 日

發布 androidx.health.connect:connect-client:1.1.0-alpha12androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha12androidx.health.connect:connect-client-proto:1.1.0-alpha12。1.1.0-alpha12 版包含這些修訂項目

API 變更

  • 將中繼資料建構函式設為內部 (I1fb8f)
  • 移除了功能可用性 API 的實驗性註解。(I5b54f)
  • 推出中繼資料工廠方法 (I8418b)
  • 建立中繼資料物件 (I3a13e) 時,請務必使用錄製方法
  • 建立裝置物件時,強制提供裝置類型 (Ibc325)

修正錯誤

  • 修正計畫運動步驟和區塊缺少說明的問題。(I84039)
  • 更新血壓值限制的 Java 文件。(I8d3d4)
  • 在 Android U 以上版本中,Jetpack 的血壓記錄值驗證功能已由平台驗證功能取代。(I08bf5)
  • 在 Android U 以上版本中,為分組結果新增貢獻資料來源。(Ie7651)

1.1.0-alpha11 版本

2025 年 1 月 15 日

發布 androidx.health.connect:connect-client:1.1.0-alpha11androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha11androidx.health.connect:connect-client-proto:1.1.0-alpha11。1.1.0-alpha11 版包含這些修訂版本

新功能

  • 更新背景和記錄讀取權限,支援 Android 13 以下版本。

API 變更

  • 針對 HealthPermission.getReadPermissionHealthPermission.getWritePermission 新增內建具體化超載 (I59a2e)

修正錯誤

  • 移除舊版權限方法 (Ifd080)
  • 這個程式庫現在使用 JSpecify 空值註解,這些註解屬於型別用途。Kotlin 開發人員應使用下列編譯器引數,強制執行正確用法:-Xjspecify-annotations=strict (這是 Kotlin 編譯器 2.1.0 版的預設值)。(Iaf73ab/326456246)
  • 修正 HealthPermission.READ_HEALTH_DATA_HISTORY 的說明文件,具體來說,就是指出如果沒有這項權限,只有在嘗試讀取單一資料點時才會失敗。(Id5b5a)

1.1.0-alpha10 版

2024 年 10 月 16 日

發布 androidx.health.connect:connect-client:1.1.0-alpha10androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha10androidx.health.connect:connect-client-proto:1.1.0-alpha10。1.1.0-alpha10 版包含這些修訂項目

新功能

  • 新增 SkinTemperature 種匯總類型。(Ibe123)
  • 新增 FEATURE_PLANNED_EXERCISE 常數 (Ie02a3)
  • 新增「讀取記錄」權限。(I5cf41)
  • 新增訓練計畫 API (If5be1)
  • 新增 SkinTemperatureRecord API。(I5605d)

安全性修正

  • 這項變更起,androidx 會針對 protobuf 4.28.2 進行編譯,以解決 CVE-2024-7254。將 androidx.health:connect:connect-client-protoandroidx.health:connect:connect-client-external-protobuf 的依附元件升級至最新的 1.1.0-alpha10,以解決安全漏洞風險。

1.1.0-alpha09 版本

2024 年 9 月 18 日

發布 androidx.health.connect:connect-client:1.1.0-alpha09androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha09androidx.health.connect:connect-client-proto:1.1.0-alpha09。1.1.0-alpha09 版包含這些修訂項目

新功能

  • 新增背景讀取權限,並受功能可用性限制。(I01036I44db9)

1.1.0-alpha08 版本

2024 年 9 月 4 日

發布 androidx.health.connect:connect-client:1.1.0-alpha08androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha08androidx.health.connect:connect-client-proto:1.1.0-alpha08。1.1.0-alpha08 版包含這些修訂項目

API 變更

  • HealthConnectClient 中為 features 變數設定預設值。(I788dc)
  • 新增 API,檢查功能是否可用。(Iedd43)

修正錯誤

  • 當 U+ 5802f 中的 HealthConnectManager 為空值時,傳回 HealthConnectClient.getSdkStatus() 中的 SDK_UNAVAILABLE
  • toString 覆寫新增至 RecordClasses aa5dc
  • 移除手動列出新平台 API 存取權的步驟,因為使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,系統會透過 API 建模自動執行這項作業,而使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 時,所有建構作業都會自動執行這項作業。如果用戶端未使用 AGP,建議更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(If6b4cb/345472586)

1.1.0-alpha07 版本

2024 年 1 月 10 日

發布 androidx.health.connect:connect-client:1.1.0-alpha07查看 1.1.0-alpha07 版的修訂項

API 變更

  • 從設定檔使用者環境呼叫 #getSdkStatus 時,請傳回 SDK_UNAVAILABLE。(I91df3)
  • 移除 SleepStageRecord。(/If6ada)

修正錯誤

  • 繫結失敗時,擲回 RemoteException,而非 IllegalStateException。(Id2233)

1.1.0-alpha06 版本

2023 年 10 月 18 日

發布 androidx.health.connect:connect-client:1.1.0-alpha06查看 1.1.0-alpha06 版的修訂項

API 變更

  • recordingMethod 定義設為公開。(I401fb)

修正錯誤

  • 在運動路線文件中新增說明,指出位置資訊應在工作階段結束時間前提供。(0e51e6)

1.1.0-alpha05 版本

2023 年 10 月 4 日

發布 androidx.health.connect:connect-client:1.1.0-alpha05查看 1.1.0-alpha05 版的修訂項

API 變更

  • 新增可導覽至「健康資料同步」資料管理畫面的意圖。(Ibf591)
  • 已移除 AggregationResult 中已淘汰的方法。(Idbda9)
  • 新增便利 API,可使用具體化記錄類型建立 ReadRecordsRequest,以及刪除和讀取記錄。(If58a5)

修正錯誤

  • 修正 Android 14 的錯誤,避免系統將空值的營養欄位回傳為 Double.MIN_VALUE。(1aa1d1)
  • 修正 Android 14 中的錯誤:由於 bucket 的開始/結束時間相同,因此按月/年彙整資料時,回應會擲回例外狀況。(281313)

1.1.0-alpha04 版本

2023 年 9 月 6 日

發布 androidx.health.connect:connect-client:1.1.0-alpha04查看 1.1.0-alpha04 版的修訂項

API 變更

修正錯誤

1.1.0-alpha03 版本

2023 年 7 月 26 日

發布 androidx.health.connect:connect-client:1.1.0-alpha031.1.0-alpha03 版包含此連結所列的修訂項目。

新功能

  • 用於讀取及寫入運動路線的 API:
    • 已將「ExerciseRouteResult」新增到「ExerciseSessionRecord
    • 已新增「ExerciseRouteRequestContract

API 變更

  • 新增 ExerciseRouteResult 及其子類別:DataNoDataConsentRequiredStates
  • 新增 ExerciseRoute 做為獨立類別,用於保存路線的位置資料。(I22eed)
  • 新增了 PERMISSION_WRITE_EXERCISE_ROUTE。(I92fc4)
  • 新增 ExerciseRouteRequestContract,新增 HealthPermissionsRequestContract。(Ief0e5)

修正錯誤

  • 修正以千焦耳為單位的能量建構方式 (Ie8791)

1.1.0-alpha02 版本

2023 年 6 月 21 日

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

修正錯誤

  • 修正 HealthDataSdkService 外洩問題 (Ia3ba5)
  • 在 Android U 上要求權限時,一律重新導向至正確的HealthConnect用戶端。(I6415a)

1.1.0-alpha01 版本

2023 年 6 月 7 日

發布 androidx.health.connect:connect-client:1.1.0-alpha01。這個版本是在內部分支版本中開發而成。

新功能

  • 支援 Android 14 架構版本的健康資料同步。您必須先安裝這個 SDK,才能使用 Android 14。如果沒有這項權限,應用程式就無法在 Android 14 上與「健康資料同步」整合。
  • 新增記錄中繼資料的記錄方法。

API 變更

  • 工作階段 API 變更:
    • 在「SleepSessionRecord」中新增各個睡眠階段,並移除「SleepStageRecord」。
    • 已將 ExerciseLapExerciseSegment 新增至 ExerciseSessionRecord
  • 讀取、變更記錄、插入和刪除作業的週期性和每日速率限制 (包括記憶體限制)。
  • 已為所有 NutritionRecord 欄位新增驗證。
  • 新增 HeartRateVariabilityRmssdRecord 的驗證。
  • 移除了兩項已淘汰的 API:HealthConnectClient#isProviderAvailableHealthConnectClient#isApiSupported

修正錯誤

  • 所有單位類型都採用固定的單位相等性,相等性不再取決於用於單位初始化的類型。例如,Mass.grams(1000) 現在等於 Mass.kilograms(1)。

1.0 版本

1.0.0-alpha11 版本

2023 年 2 月 22 日

發布 androidx.health.connect:connect-client:1.0.0-alpha111.0.0-alpha11 版包含此連結所列的修訂項目。

API 變更

  • 新增用於開啟「健康資料同步」的意圖。(Ic8055)
  • 移除部分運動類型。使用 EXERCISE_TYPE_STRENGTH_TRAININGEXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAININGEXERCISE_TYPE_CALISTHENICS 取代已移除的類型。(I7291c)
  • 新增 API sdkStatus(),其功能結合了兩個目前已淘汰的 API isSdkSupported()isProviderAvailable()。(Iac89d)
  • 變更接受 providerPackageName 的 API,使其接受單一字串而非清單。(I67e0f)

1.0.0-alpha10 版本

2023 年 1 月 25 日

發布 androidx.health.connect:connect-client:1.0.0-alpha101.0.0-alpha10 版包含此連結所列的修訂項目。

API 變更

  • ExerciseEventRecordExerciseLapRecordExerciseRepititionRecordSwimmingStrokesRecord 已不再是支援的 RecordTypes,無法透過 HealthConnect 寫入或讀取。請從 HealthConnect 整合項目中移除對這些資料類型的參照。(If7ca2)
  • 變更權限 API,接受採用新字串格式的權限。與此同時,您也必須將權限聲明改成標準 Android 權限格式。(Ib0a2f)

1.0.0-alpha09 版本

2023 年 1 月 11 日

發布 androidx.health.connect:connect-client:1.0.0-alpha09查看 1.0.0-alpha09 版的修訂項

新功能

  • 為健康資料同步新增 2 種新的女性健康資料類型:IntermenstrualBleedingRecordMenstruationPeriodRecordMenstruationFlow.ENUMs 包括少量、中量、大量和不明。

API 變更

  • 新增 IntermenstrualBleedingRecord (Idc470)
  • 新增 MenstruationPeriodRecord 記錄類型 (Iea545)

1.0.0-alpha08 版本

2022 年 12 月 7 日

發布 androidx.health.connect:connect-client:1.0.0-alpha081.0.0-alpha08 版包含此連結所列的修訂項目。

API 變更

  • BodyWaterMassHeartRateVariabilityRmssdRecord 新增為支援的記錄類型 (Ifd58f)
  • 從支援的 RecordTypes 中移除 HipCircumferenceRecordWaistCircumferenceRecord (I62fb9)
  • MenstruationFlowRecord.flow 已從 stringdef 變更為 intdefs (I0369f)
  • 為提升效能,含有 Strings 的列舉類記錄欄位已變更為 Integers (I3b295)
  • ExerciseSessionExerciseRepetitionsSleepStage 列舉類欄位已從字串變更為整數類型 (Id32a9)
  • ExerciseSessionRecord.ACTIVE_TIME_TOTAL->EXERCISE_DURATION_TOTAL」已重新命名。(I5d7bd)
  • 將「Unusual」新增至 CervicalMucus 列舉。為提供更具體的資訊,我們將「Clear」重新命名為「Eggwhite」。此外,CervicalMucus#appearance 和 #sensation 已從 StringDefs 變更為 IntDefs (I3ac51)
  • DeviceTypes 列舉的 StringDef 現已移至「裝置」底下的 IntDefs (I3abf3)
  • 新增 HealthConnectClient.isApiSupported(),這會在沒有相容導入方式的 SDK 版本中傳回 false。「HealthConnectClient.isAvailable->isProviderAvailable」已重新命名。(I3674e)

修正錯誤

  • 不允許 HeartRate beatsPerMinute 值小於 1 (I6052f)
  • 新增 @JvmDefaultWithCompatibility 註解 (I8f206)

1.0.0-alpha07 版本

2022 年 10 月 24 日

發布 androidx.health.connect:connect-client:1.0.0-alpha07查看 1.0.0-alpha07 版的修訂項

API 變更

  • 沒有預設值的 Record 引數位於具有預設值的引數之前。為保持一致性,InstantZoneOffset 引數一律會放在最開頭的位置。(Id618c)
  • HealthConnectClient.getOrCreate#packageNames 重新命名為 providerPackageNames。(Id81e4)

修正錯誤

  • 新增 Record 欄位值驗證功能。如果提供的值超出合理範圍,將導致極端錯誤值擲回 IllegalArgumentExceptions。(Ie171d)
  • 驗證記錄的開始時間是在相關結束時間之前。(I02460)

1.0.0-alpha06 版本

2022 年 10 月 5 日

發布 androidx.health.connect:connect-client:1.0.0-alpha06查看 1.0.0-alpha06 版的修訂項

修正錯誤

  • 改善服務連結生命週期。(If2bd5)
  • 修正在服務連結發生例外狀況時造成的 NPE 當機錯誤。(I13546)

1.0.0-alpha05 版本

2022 年 9 月 21 日

發布 androidx.health.connect:connect-client:1.0.0-alpha051.0.0-alpha05 版包含此連結所列的修訂項目。

API 變更

  • Metadata.uid 更名為 Metadata.id,相關的 CRUD API 統一使用 recordId 術語。(I3d1d2)
  • PermissionController.createRequestPermissionActivityContract 設為靜態方法,而非執行個體方法。已重新命名為 PermissionController.createRequestPermissionResultContract。(Icd2fe)
  • 已為 BloodGlucoseRecord 新增 BloodGlucose 單位類型。(I97678)
  • 重新命名 MenstruationRecord -> MenstruationFlowRecord。(I3b88e)

修正錯誤

  • 修正不會從用戶端程序傳播前景統計資料的意外行為。(Ifb44c)

1.0.0-alpha04 版本

2022 年 8 月 24 日發布 androidx.health.connect:connect-client:1.0.0-alpha04查看 1.0.0-alpha04 版的修訂項

遷移至 `androidx.health.connect`

自 1.0.0-alpha04 版本起,androidx.health:health-connect-client 已遷移至 androidx.health.connect:connect-client。如需舊版的健康資料同步,請前往 androidx.health 頁面。

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

新功能

  • 針對 API 呼叫內建選用的偵錯記錄檔 (連結)

API 變更

  • 中繼資料 clientId 更名為 clientRecordIdclientVersion 更名為 clientRecordVersion。(連結)
  • 中繼資料 uid 變得更易於閱讀器讀取,而且不可再為空值。(連結)
  • 新增磅的質量單位 (link)
  • 已將 DeletionChange.deleteUid 重新命名為 uid (連結)
  • 將 Permission 重新命名為 HealthPermission。這可避免 Android 架構權限產生混淆。(連結)

修正錯誤

  • 修正能量卡路里單位不正確的迴歸問題 (連結)
  • 已修正少數記錄類型的匯總迴歸問題 (連結)