ExerciseSessionRecord


public final class ExerciseSessionRecord implements Record


Captures any exercise a user does. This can be common fitness exercise like running or different sports.

Each record needs a start time and end time. Records don't need to be back-to-back or directly after each other, there can be gaps in between.

Example code demonstrate how to read exercise session:

import androidx.health.connect.client.readRecord
import androidx.health.connect.client.records.ExerciseSessionRecord
import androidx.health.connect.client.records.HeartRateRecord
import androidx.health.connect.client.request.ReadRecordsRequest
import androidx.health.connect.client.time.TimeRangeFilter

val response =
    healthConnectClient.readRecords(
        ReadRecordsRequest<ExerciseSessionRecord>(
            timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
        )
    )
for (exerciseRecord in response.records) {
    // Process each exercise record
    // Optionally pull in with other data sources of the same time range.
    val heartRateRecords =
        healthConnectClient
            .readRecords(
                ReadRecordsRequest<HeartRateRecord>(
                    timeRangeFilter =
                        TimeRangeFilter.between(
                            exerciseRecord.startTime,
                            exerciseRecord.endTime
                        )
                )
            )
            .records
}

Summary

Constants

static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int

Can be used to represent any generic workout that does not fall into a specific category.

static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int

Public fields

static final @NonNull AggregateMetric<@NonNull Duration>

Metric identifier to retrieve the total exercise time from androidx.health.connect.client.aggregate.AggregationResult.

Public constructors

ExerciseSessionRecord(
    @NonNull Instant startTime,
    ZoneOffset startZoneOffset,
    @NonNull Instant endTime,
    ZoneOffset endZoneOffset,
    @NonNull Metadata metadata,
    int exerciseType,
    String title,
    String notes,
    @NonNull List<@NonNull ExerciseSegment> segments,
    @NonNull List<@NonNull ExerciseLap> laps,
    ExerciseRoute exerciseRoute,
    String plannedExerciseSessionId
)

Public methods

boolean
equals(Object other)
@NonNull Instant

End time of the record.

ZoneOffset

User experienced zone offset at endTime, or null if unknown.

final @NonNull ExerciseRouteResult

ExerciseRouteResult of the session.

final int

Type of exercise (e.g. walking, swimming).

final @NonNull List<@NonNull ExerciseLap>

ExerciseLaps of the session.

@NonNull Metadata

Set of common metadata associated with the written record.

final String

Additional notes for the session.

final String
final @NonNull List<@NonNull ExerciseSegment>

ExerciseSegments of the session.

@NonNull Instant

Start time of the record.

ZoneOffset

User experienced zone offset at startTime, or null if unknown.

final String

Title of the session.

int
@NonNull String

Constants

EXERCISE_TYPE_BADMINTON

public static final int EXERCISE_TYPE_BADMINTON = 2

EXERCISE_TYPE_BASEBALL

public static final int EXERCISE_TYPE_BASEBALL = 4

EXERCISE_TYPE_BASKETBALL

public static final int EXERCISE_TYPE_BASKETBALL = 5

EXERCISE_TYPE_BIKING

public static final int EXERCISE_TYPE_BIKING = 8

EXERCISE_TYPE_BIKING_STATIONARY

public static final int EXERCISE_TYPE_BIKING_STATIONARY = 9

EXERCISE_TYPE_BOOT_CAMP

public static final int EXERCISE_TYPE_BOOT_CAMP = 10

EXERCISE_TYPE_BOXING

public static final int EXERCISE_TYPE_BOXING = 11

EXERCISE_TYPE_CALISTHENICS

public static final int EXERCISE_TYPE_CALISTHENICS = 13

EXERCISE_TYPE_CRICKET

public static final int EXERCISE_TYPE_CRICKET = 14

EXERCISE_TYPE_DANCING

public static final int EXERCISE_TYPE_DANCING = 16

EXERCISE_TYPE_ELLIPTICAL

public static final int EXERCISE_TYPE_ELLIPTICAL = 25

EXERCISE_TYPE_EXERCISE_CLASS

public static final int EXERCISE_TYPE_EXERCISE_CLASS = 26

EXERCISE_TYPE_FENCING

public static final int EXERCISE_TYPE_FENCING = 27

EXERCISE_TYPE_FOOTBALL_AMERICAN

public static final int EXERCISE_TYPE_FOOTBALL_AMERICAN = 28

EXERCISE_TYPE_FOOTBALL_AUSTRALIAN

public static final int EXERCISE_TYPE_FOOTBALL_AUSTRALIAN = 29

EXERCISE_TYPE_FRISBEE_DISC

public static final int EXERCISE_TYPE_FRISBEE_DISC = 31

EXERCISE_TYPE_GOLF

public static final int EXERCISE_TYPE_GOLF = 32

EXERCISE_TYPE_GUIDED_BREATHING

public static final int EXERCISE_TYPE_GUIDED_BREATHING = 33

EXERCISE_TYPE_GYMNASTICS

public static final int EXERCISE_TYPE_GYMNASTICS = 34

EXERCISE_TYPE_HANDBALL

public static final int EXERCISE_TYPE_HANDBALL = 35

EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING

public static final int EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING = 36

EXERCISE_TYPE_HIKING

public static final int EXERCISE_TYPE_HIKING = 37

EXERCISE_TYPE_ICE_HOCKEY

public static final int EXERCISE_TYPE_ICE_HOCKEY = 38

EXERCISE_TYPE_ICE_SKATING

public static final int EXERCISE_TYPE_ICE_SKATING = 39

EXERCISE_TYPE_MARTIAL_ARTS

public static final int EXERCISE_TYPE_MARTIAL_ARTS = 44

EXERCISE_TYPE_OTHER_WORKOUT

public static final int EXERCISE_TYPE_OTHER_WORKOUT = 0

Can be used to represent any generic workout that does not fall into a specific category. Any unknown new value definition will also fall automatically into EXERCISE_TYPE_OTHER_WORKOUT.

Next Id: 84.

EXERCISE_TYPE_PADDLING

public static final int EXERCISE_TYPE_PADDLING = 46

EXERCISE_TYPE_PARAGLIDING

public static final int EXERCISE_TYPE_PARAGLIDING = 47

EXERCISE_TYPE_PILATES

public static final int EXERCISE_TYPE_PILATES = 48

EXERCISE_TYPE_RACQUETBALL

public static final int EXERCISE_TYPE_RACQUETBALL = 50

EXERCISE_TYPE_ROCK_CLIMBING