Create performant health applications in a platform agnostic way.
Latest Update Current Stable Release Next Release Candidate Beta Release Alpha Release
May 18, 2021 - - - 1.0.0-alpha01

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:


dependencies {
    implementation ""


dependencies {


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.0

Version 1.0.0-alpha01

May 18, 2021 is released. Version 1.0.0-alpha01 contains these commits.

Features of initial release

The Health Services library provides a uniform set of APIs for developers to integrate with device-specific sensor implementations. It will work out of the box with Wear OS 3 emulators and upcoming devices, with additional platforms supported in the future. Three top level API surfaces are included in this initial release: The ExerciseClient, PassiveMonitoringClient, and MeasureClient.


The ExerciseClient is made for applications tracking active workouts, with up to 82 different ExerciseTypes from walking and running to dancing and water polo. While tracking these exercises, there’s a selection of 50 different DataTypes available depending on the exercise type and hardware available on the device. To get started, just specify the relevant information in your ExerciseConfig, call exerciseClient.startExercise and listen for progress on the update listener.


The PassiveMonitoringClient is a great choice if your application tracks the user’s activity throughout the day. You can register a PendingIntent with a set of DataTypes and be woken up to handle batched changes. Alternatively, you can specify an Event such as reaching a certain number of steps.


Sometimes the user needs to measure e.g. their heart rate in the moment, not during an exercise and not throughout the day. In those moments the MeasureClient is the perfect choice.You just register your callback with supported DataTypes to receive a stream of data, unregistering your callback when it’s no longer needed.