Is getHeartRateZones[5] equal to the user's maximum HR?

According to the docs the getHeartRateZones method retrive an array of the current heart rate zone threshold values in beats per minute (bpm).

It then further describes the content of the array but for the last element [5] the description is a bit misleading to me:

* max zone 5 - The maximum heart rate threshold for zone 5

From this statement I understand that this value is equal to the users maximum configured HR since zone 5 is the highest I would assume the max threshold of that zone will be the equivalent of the user's maximum HR.

Am I correct in my interpretation?

I'm trying to find a way to get the user configured max HR value. The API provides a method to get the resting HR value from the user profile but I couldn't find anything for the max HR.

Thanks.

  • I'm not sure what value you are looking for, but the 5 zones are the configured values, and can also vary by specific sport, so I wouldn't use them for a user's max heart rate.

    If you are doing a data field or a recording device-app, you can see the max HR in Activity.getActivityInfo().maxHeartRate.

    getHeartRateHistory will give you the min/max over an interval of around 4 hours, but only with samples every 1-2 minutes.

  • Thanks for your reply.
    I'm very familiar with the method you suggested (Activity.getActivityInfo().maxHeartRate) but this is not what I'm looking for. I'm not after the max HR during the activity.
    What I'm looking for is to get the user maximum HR from his profile so other values like zone thresholds can be calculated.

  • To answer your question in title of thread: yes.

    UserProfile.getHeartRateZones(UserProfile.getCurrentSport()) returns an array with 6 values where the first value is the lowest value of zone 1 of the corresponding sport and the sixth value is the highest value of zone 5.
    The highest value of zone five is the configured max HR of the corresponding sport.

  • Thanks for confirming this.