Health Connect

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

要求存取資料類型

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

宣告依附元件

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

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

Groovy

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

Kotlin

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

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

意見回饋

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

建立新問題

詳情請參閱 Issue Tracker 說明文件

Health Connect 測試 1.0 版

1.0.0-alpha01 版

2024 年 9 月 4 日

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

新功能

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

您可以使用這個程式庫建立本機單元測試,這些測試通常會驗證應用程式中與 Health Connect 用戶端互動的類別行為。

程式庫的進入點是 FakeHealthConnectClient 類別,您可以在測試中使用該類別取代 HealthConnectClient。其功能如下:

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

API 變更

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

1.1 版本

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-Xtype-enhancement-improvements-strict-mode (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)。
  • 新增 Training plans 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)

修正錯誤

  • HealthConnectManager 在 U+ 5802f 中為空值時,在 HealthConnectClient.getSdkStatus() 中傳回 SDK_UNAVAILABLE
  • toString 覆寫值新增至 RecordClasses aa5dc
  • 移除新平台 API 存取權的手動設定,因為在使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,以及在使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 的所有版本時,這項操作會透過 API 模擬功能自動執行。建議未使用 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 變更

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

修正錯誤

  • 修正 Android 14 中空值營養欄位以 Double.MIN_VALUE 傳回的問題。(1aa1d1)
  • 修正 Android 14 中的錯誤,當按月/年期間進行匯總時,由於值區有相同的開始/結束時間,因此會在回應中擲回例外狀況。(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 架構版本的 Health Connect。這個 SDK 是 Android 14 的必要條件。否則應用程式將無法在 Android 14 上與 Health Connect 整合。
  • 新增錄製方法,以記錄中繼資料。

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 變更

  • 新增用於開啟 Health Connect 的意圖。(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 版的修訂項

新功能

  • 為 Health Connect 新增 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。如要查看 Health Connect 的先前版本,請前往 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 架構權限產生混淆。(連結)。

修正錯誤

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