Health Connect

  
Allows developers to read or write user's health and fitness records.
Latest Update Stable Release Release Candidate Beta Release Alpha Release
February 22, 2023 - - - 1.0.0-alpha11

Requesting access to data types

To help us strengthen user privacy and security, developers integrating with Health Connect must request read and/or write access for data types by completing the following developer declaration form. In the request, include a valid use case(s) for the data types you need based on the app's purpose. For more information, visit Health Connect Policy Requirements FAQ and Health Connect by Android Permissions.

Declaring dependencies

To add a dependency on health, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

Groovy

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

Kotlin

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

For more information about dependencies, see Add build dependencies.

Feedback

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

Create a new issue

See the Issue Tracker documentation for more information.

Version 1.0

Version 1.0.0-alpha11

February 22, 2023

androidx.health.connect:connect-client:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits.

API Changes

  • Adding an intent to use for opening Health Connect. (Ic8055)
  • Removing some exercise types. Use EXERCISE_TYPE_STRENGTH_TRAINING, EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING or EXERCISE_TYPE_CALISTHENICS in place of the removed types. (I7291c)
  • Adding new API sdkStatus() that combines the two now deprecated APIs isSdkSupported() and isProviderAvailable(). (Iac89d)
  • Changing APIs that accept providerPackageName to accept a single string rather than a list. (I67e0f)

Version 1.0.0-alpha10

January 25, 2023

androidx.health.connect:connect-client:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits.

API Changes

  • ExerciseEventRecord, ExerciseLapRecord,ExerciseRepititionRecord and SwimmingStrokesRecord are no longer supported as RecordTypes. They can no longer be written or read from HealthConnect. Remove any reference to these data types from the HealthConnect integration. (If7ca2)
  • Changes in permissions APIs to accept permissions in a new string based format. This change also requires changing permission declaration to the standard android permissions format. (Ib0a2f)

Version 1.0.0-alpha09

January 11, 2023

androidx.health.connect:connect-client:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.

New Features

  • Added 2 new female health datatypes for Health Connect: IntermenstrualBleedingRecord, and MenstruationPeriodRecord. MenstruationFlow.ENUMs are Light, Medium, Heavy, and Unknown.

API Changes

  • Added IntermenstrualBleedingRecord (Idc470)
  • Added MenstruationPeriodRecord record type (Iea545)

Version 1.0.0-alpha08

December 7, 2022

androidx.health.connect:connect-client:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.

API Changes

  • Adds BodyWaterMass, HeartRateVariabilityRmssdRecord as new supported Record Types. (Ifd58f)
  • Removes HipCircumferenceRecord, WaistCircumferenceRecord as supported RecordTypes. (I62fb9)
  • Changed MenstruationFlowRecord.flow from stringdef to intdefs. (I0369f)
  • Changed enum-like Record fields with Strings to Integers for better performance. (I3b295)
  • Changed ExerciseSession, ExerciseRepetitions, SleepStage enum-like fields from string to integer types. (Id32a9)
  • Renamed ExerciseSessionRecord.ACTIVE_TIME_TOTAL->EXERCISE_DURATION_TOTAL. (I5d7bd)
  • Adds "Unusual" to CervicalMucus enums. Rename "Clear" to "Eggwhite" for more specificity. Changed CervicalMucus#appearance and #sensation from StringDefs to IntDefs. (I3ac51)
  • StringDef of DeviceTypes enum is now moved into IntDefs under Device. (I3abf3)
  • Adds HealthConnectClient.isApiSupported(), which returns false on SDK versions with no compatible implementations. Renamed HealthConnectClient.isAvailable->isProviderAvailable. (I3674e)

Bug Fixes

  • Disallow HeartRate beatsPerMinute values less than 1 (I6052f)
  • Adding @JvmDefaultWithCompatibility annotation (I8f206)

Version 1.0.0-alpha07

October 24, 2022

androidx.health.connect:connect-client:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.

API Changes

  • Record arguments without default values are placed before arguments with default values. For consistency, Instant and ZoneOffset arguments are always placed at the very beginning. (Id618c)
  • Rename HealthConnectClient.getOrCreate#packageNames to providerPackageNames. (Id81e4)

Bug Fixes

  • Adds Record field value validations. Extremely wrong values will throw IllegalArgumentExceptions when provided value is out of reasonable bounds. (Ie171d)
  • Validates record start time before end time where relevant. (I02460)

Version 1.0.0-alpha06

October 5, 2022

androidx.health.connect:connect-client:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.

Bug Fixes

  • Improves service connection lifecycle. (If2bd5)
  • Fix an NPE crash bug when exception raised in service connection. (I13546)

Version 1.0.0-alpha05

September 21, 2022

androidx.health.connect:connect-client:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.

API Changes

  • Renamed Metadata.uid -> Metadata.id and used the terminology recordId consistently throughout related CRUD APIs. (I3d1d2)
  • Made PermissionController.createRequestPermissionActivityContract a static method instead of an instance method. Renamed to PermissionController.createRequestPermissionResultContract. (Icd2fe)
  • Added BloodGlucose unit type for BloodGlucoseRecord (I97678)
  • Rename MenstruationRecord -> MenstruationFlowRecord. (I3b88e)

Bug Fixes

  • Fix unintended behavior not propagating foreground stats from client process. (Ifb44c)

Version 1.0.0-alpha04

August 24, 2022 androidx.health.connect:connect-client:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.

Migration to `androidx.health.connect

As of 1.0.0-alpha04, androidx.health:health-connect-client was migrated to androidx.health.connect:connect-client. For previous versions of Health Connect, please visit the androidx.health page.

To migrate, simply change your dependency import from androidx.health:health-connect-client:1.0.0-alpha03 to androidx.health.connect:connect-client:1.0.0-alpha04.

New Features

  • Included optional debug logs builtin for API calls (link)

API Changes

  • Renamed Metadata clientId to clientRecordId, clientVersion to clientRecordVersion. (link)
  • Made Metadata uid more friendly to readers, no longer nullable. (link)
  • Added pounds to Mass unit (link)
  • Renamed DeletionChange.deleteUid to uid (link)
  • Rename Permission -> HealthPermission. This avoids ambiguity with Android Framework permissions. (link)

Bug Fixes

  • Fixed regression issues with incorrect calories unit with Energy (link)
  • Fixed regression issue with aggregation for few record types (link)