Energy your Put on OS health app with the most recent model of Well being Providers


Posted by Breana Tate, Developer Relations EngineerThe Well being Providers API allows builders to make use of on-device sensor information and associated algorithms to offer their apps with high-quality information associated to exercise, train, and well being. What’s extra, you don’t have to decide on between conserving battery life and delivering excessive frequency information–Well being Providers makes it doable to do each. Since saying Well being Providers Alpha at I/O ‘21, we’ve launched quite a few enhancements to the platform aimed toward simplifying the event expertise. Learn on to study concerning the thrilling options from Well being Providers Beta in Android Jetpack that your app will be capable of reap the benefits of once you migrate from Alpha.

Seize extra with new metrics

The Well being Providers Jetpack Beta introduces new information and train varieties, together with DataType.GOLF_SHOT_COUNT, ExerciseType.HORSE_RIDING, and ExerciseType.BACKPACKING. You may evaluate the complete checklist of latest train and information varieties right here. These complement the already massive library of information and train varieties accessible to builders constructing Put on OS apps with Well being Providers. Moreover, we’ve added the flexibility to hear for well being occasions, akin to fall detection, by PassiveMonitoringClient.

Along with new information varieties, we’ve additionally launched a brand new group mannequin for information in Well being Providers. This new mannequin makes the Well being Providers API extra type-safe by including extra classification data to information varieties and information factors, decreasing the prospect of errors in code. In Beta, all DataPoint varieties have their very own subclass and are derived from the DataPoint class. You may select from:

  • SampleDataPoints 
  • IntervalDataPoints 
  • StatisticalDataPoints
  • CumulativeDataPoints

DataTypes are categorized as AggregateDataTypes or DeltaDataTypes.

On account of this transformation, Well being Providers can assure the proper sort at compile time as a substitute of at runtime, decreasing errors and enhancing the developer expertise. For instance, location information factors at the moment are represented as a strongly-typed LocationData object as a substitute of as a DoubleArray. Check out the instance beneath:


exerciseUpdate.latestMetrics[DataType.LOCATION]?.forEach {
  val loc = it.worth.asDoubleArray()


  println(“($lat,$lon,$alt) @ ${it.startDurationFromBoot})

Well being Providers Beta:

exerciseUpdate.latestMetrics.getData(DataType.LOCATION).forEach {
  // it.worth is of sort LocationData
  val loc = it.worth
  val time = it.timeDurationFromBoot
  println(“loc = [${loc.latitude}, ${loc.longitude}, ${loc.altitude}] @ $time”)


As you possibly can see, because of the new strategy, Well being Providers is aware of that loc is of sort Record<SampleDataPoint<LocationData>> as a result of DataType.LOCATION is outlined as a DeltaDataType<LocationData, SampleDataPoint<LocationData>>.

Consolidated train finish state

ExerciseState is now included inside ExerciseUpdate’s ExerciseStateInfo property. To present you extra management over how your app responds to an ending train, we’ve added new ExerciseStates known as ExerciseState.ENDED and ExerciseState.ENDING to interchange what was beforehand a number of variations of ended and ending states. These new states additionally embody an endReason, akin to USER_END, AUTO_END_PREPARE_EXPIRED, and AUTO_END_PERMISSION_LOST.

The next instance reveals test for train termination:

val callback = object : ExerciseUpdateCallback {
    override enjoyable onExerciseUpdateReceived(replace: ExerciseUpdate) {
        if (replace.exerciseStateInfo.state.isEnded) {
            // Exercise has both been ended by the consumer, or in any other case terminated
            val purpose = replace.exerciseStateInfo.endReason

Enhancements to passive monitoring

Well being Providers Beta additionally transitions to a brand new set of passive listener APIs. These modifications largely give attention to making every day metrics higher typed and simpler to combine. For instance, we renamed the PassiveListenerConfig operate setPassiveGoals to setDailyGoals. This alteration reinforces that Well being Providers solely helps every day passive targets.We’ve additionally condensed a number of APIs for registering Passive Listeners right into a single registration name. Shoppers can straight implement the specified overrides for under the info your app wants.

Moreover, the Passive Listener BroadcastReceiver was changed by the PassiveListenerService, which affords stronger typing, together with higher reliability and efficiency. Shoppers can now register each a service and a callback concurrently with totally different requests, making it simpler to register a callback for UI updates whereas reserving the background request for database updates.

Construct for much more units on Put on OS 3

Well being Providers is just accessible for Put on OS 3. The Put on OS 3 ecosystem now contains much more units, which suggests your apps can attain much more customers. Montblanc, Samsung, and Fossil are just some of the OEMs which have not too long ago launched new units operating Put on OS 3 (with extra coming later this yr!). The newly launched Pixel Watch additionally options Fitbit well being monitoring powered by Well being Providers.

When you haven’t used Well being Providers earlier than, now could be the time to strive it out! And in case your app continues to be utilizing Well being Providers Alpha, right here is why it is best to contemplate migrating:

  • Ongoing Well being Providers Growth: Since Well being Providers Beta is the latest model, bug fixes and have enhancements are more likely to be prioritized over older variations.
  • Prepares your app infrastructure for when Well being Providers goes to steady launch
  • Enhancements to sort security – much less probability of error in code!
  • Provides extra performance to make it simpler to work with Well being Providers information

You may view the complete checklist of modifications and up to date documentation at


Please enter your comment!
Please enter your name here