# ExerciseSessionRecord

Artifact: [androidx.health.connect:connect-client](https://developer.android.com/jetpack/androidx/releases/health-connect) [View Source](https://cs.android.com/search?q=file:androidx/health/connect/client/records/ExerciseSessionRecord.kt+class:androidx.health.connect.client.records.ExerciseSessionRecord) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

*** ** * ** ***


```
public final class ExerciseSessionRecord implements Record
```

<br />

*** ** * ** ***

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:

```kotlin
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` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_BADMINTON() = 2` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_BASEBALL() = 4` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_BASKETBALL() = 5` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_BIKING() = 8` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_BIKING_STATIONARY() = 9` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_BOOT_CAMP() = 10` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_BOXING() = 11` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_CALISTHENICS() = 13` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_CRICKET() = 14` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_DANCING() = 16` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_ELLIPTICAL() = 25` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_EXERCISE_CLASS() = 26` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_FENCING() = 27` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_FOOTBALL_AMERICAN() = 28` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_FOOTBALL_AUSTRALIAN() = 29` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_FRISBEE_DISC() = 31` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_GOLF() = 32` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_GUIDED_BREATHING() = 33` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_GYMNASTICS() = 34` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_HANDBALL() = 35` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING() = 36` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_HIKING() = 37` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_ICE_HOCKEY() = 38` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_ICE_SKATING() = 39` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_MARTIAL_ARTS() = 44` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_OTHER_WORKOUT() = 0` Can be used to represent any generic workout that does not fall into a specific category. |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_PADDLING() = 46` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_PARAGLIDING() = 47` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_PILATES() = 48` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_RACQUETBALL() = 50` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_ROCK_CLIMBING() = 51` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_ROLLER_HOCKEY() = 52` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_ROWING() = 53` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_ROWING_MACHINE() = 54` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_RUGBY() = 55` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_RUNNING() = 56` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_RUNNING_TREADMILL() = 57` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SAILING() = 58` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SCUBA_DIVING() = 59` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SKATING() = 60` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SKIING() = 61` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SNOWBOARDING() = 62` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SNOWSHOEING() = 63` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SOCCER() = 64` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SOFTBALL() = 65` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SQUASH() = 66` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_STAIR_CLIMBING() = 68` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_STAIR_CLIMBING_MACHINE() = 69` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_STRENGTH_TRAINING() = 70` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_STRETCHING() = 71` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SURFING() = 72` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SWIMMING_OPEN_WATER() = 73` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_SWIMMING_POOL() = 74` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_TABLE_TENNIS() = 75` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_TENNIS() = 76` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_VOLLEYBALL() = 78` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_WALKING() = 79` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_WATER_POLO() = 80` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_WEIGHTLIFTING() = 81` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_WHEELCHAIR() = 82` |
| `static final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_TYPE_YOGA() = 83` |

| ### Public fields |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/aggregate/AggregateMetric<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/time/Duration.html>` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#EXERCISE_DURATION_TOTAL()` Metric identifier to retrieve the total exercise time from `https://developer.android.com/reference/androidx/health/connect/client/aggregate/AggregationResult`. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#ExerciseSessionRecord(java.time.Instant,java.time.ZoneOffset,java.time.Instant,java.time.ZoneOffset,androidx.health.connect.client.records.metadata.Metadata,kotlin.Int,kotlin.String,kotlin.String,kotlin.collections.List,kotlin.collections.List,androidx.health.connect.client.records.ExerciseRoute,kotlin.String,kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/time/Instant.html startTime, https://developer.android.com/reference/java/time/ZoneOffset.html startZoneOffset, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/time/Instant.html endTime, https://developer.android.com/reference/java/time/ZoneOffset.html endZoneOffset, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/metadata/Metadata metadata, int exerciseType, https://developer.android.com/reference/java/lang/String.html title, https://developer.android.com/reference/java/lang/String.html notes, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSegment> segments, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseLap> laps, https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseRoute exerciseRoute, https://developer.android.com/reference/java/lang/String.html plannedExerciseSessionId, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0, to = 10.0) https://developer.android.com/reference/java/lang/Float.html rateOfPerceivedExertion )` |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/time/Instant.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getEndTime()()` End time of the record. |
| `https://developer.android.com/reference/java/time/ZoneOffset.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getEndZoneOffset()()` User experienced zone offset at `https://developer.android.com/reference/androidx/health/connect/client/records/IntervalRecord#endTime()`, or null if unknown. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseRouteResult` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getExerciseRouteResult()()` `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseRouteResult` of the session. |
| `final int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getExerciseType()()` Type of exercise (e.g. walking, swimming). |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseLap>` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getLaps()()` `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseLap`s of the session. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/metadata/Metadata` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getMetadata()()` Set of common metadata associated with the written record. |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getNotes()()` Additional notes for the session. |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getPlannedExerciseSessionId()()` |
| `final @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0, to = 10.0) https://developer.android.com/reference/java/lang/Float.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getRateOfPerceivedExertion()()` Rate of perceived exertion (RPE) for the session. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSegment>` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getSegments()()` `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSegment`s of the session. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/time/Instant.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getStartTime()()` Start time of the record. |
| `https://developer.android.com/reference/java/time/ZoneOffset.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getStartZoneOffset()()` User experienced zone offset at `https://developer.android.com/reference/androidx/health/connect/client/records/IntervalRecord#startTime()`, or null if unknown. |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#getTitle()()` Title of the session. |
| `int` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#hashCode()()` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#toString()()` |

## 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 `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSessionRecord#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

```
public static final int EXERCISE_TYPE_ROCK_CLIMBING = 51
```

### EXERCISE_TYPE_ROLLER_HOCKEY

```
public static final int EXERCISE_TYPE_ROLLER_HOCKEY = 52
```

### EXERCISE_TYPE_ROWING

```
public static final int EXERCISE_TYPE_ROWING = 53
```

### EXERCISE_TYPE_ROWING_MACHINE

```
public static final int EXERCISE_TYPE_ROWING_MACHINE = 54
```

### EXERCISE_TYPE_RUGBY

```
public static final int EXERCISE_TYPE_RUGBY = 55
```

### EXERCISE_TYPE_RUNNING

```
public static final int EXERCISE_TYPE_RUNNING = 56
```

### EXERCISE_TYPE_RUNNING_TREADMILL

```
public static final int EXERCISE_TYPE_RUNNING_TREADMILL = 57
```

### EXERCISE_TYPE_SAILING

```
public static final int EXERCISE_TYPE_SAILING = 58
```

### EXERCISE_TYPE_SCUBA_DIVING

```
public static final int EXERCISE_TYPE_SCUBA_DIVING = 59
```

### EXERCISE_TYPE_SKATING

```
public static final int EXERCISE_TYPE_SKATING = 60
```

### EXERCISE_TYPE_SKIING

```
public static final int EXERCISE_TYPE_SKIING = 61
```

### EXERCISE_TYPE_SNOWBOARDING

```
public static final int EXERCISE_TYPE_SNOWBOARDING = 62
```

### EXERCISE_TYPE_SNOWSHOEING

```
public static final int EXERCISE_TYPE_SNOWSHOEING = 63
```

### EXERCISE_TYPE_SOCCER

```
public static final int EXERCISE_TYPE_SOCCER = 64
```

### EXERCISE_TYPE_SOFTBALL

```
public static final int EXERCISE_TYPE_SOFTBALL = 65
```

### EXERCISE_TYPE_SQUASH

```
public static final int EXERCISE_TYPE_SQUASH = 66
```

### EXERCISE_TYPE_STAIR_CLIMBING

```
public static final int EXERCISE_TYPE_STAIR_CLIMBING = 68
```

### EXERCISE_TYPE_STAIR_CLIMBING_MACHINE

```
public static final int EXERCISE_TYPE_STAIR_CLIMBING_MACHINE = 69
```

### EXERCISE_TYPE_STRENGTH_TRAINING

```
public static final int EXERCISE_TYPE_STRENGTH_TRAINING = 70
```

### EXERCISE_TYPE_STRETCHING

```
public static final int EXERCISE_TYPE_STRETCHING = 71
```

### EXERCISE_TYPE_SURFING

```
public static final int EXERCISE_TYPE_SURFING = 72
```

### EXERCISE_TYPE_SWIMMING_OPEN_WATER

```
public static final int EXERCISE_TYPE_SWIMMING_OPEN_WATER = 73
```

### EXERCISE_TYPE_SWIMMING_POOL

```
public static final int EXERCISE_TYPE_SWIMMING_POOL = 74
```

### EXERCISE_TYPE_TABLE_TENNIS

```
public static final int EXERCISE_TYPE_TABLE_TENNIS = 75
```

### EXERCISE_TYPE_TENNIS

```
public static final int EXERCISE_TYPE_TENNIS = 76
```

### EXERCISE_TYPE_VOLLEYBALL

```
public static final int EXERCISE_TYPE_VOLLEYBALL = 78
```

### EXERCISE_TYPE_WALKING

```
public static final int EXERCISE_TYPE_WALKING = 79
```

### EXERCISE_TYPE_WATER_POLO

```
public static final int EXERCISE_TYPE_WATER_POLO = 80
```

### EXERCISE_TYPE_WEIGHTLIFTING

```
public static final int EXERCISE_TYPE_WEIGHTLIFTING = 81
```

### EXERCISE_TYPE_WHEELCHAIR

```
public static final int EXERCISE_TYPE_WHEELCHAIR = 82
```

### EXERCISE_TYPE_YOGA

```
public static final int EXERCISE_TYPE_YOGA = 83
```

## Public fields

### EXERCISE_DURATION_TOTAL

```
public static final @NonNull AggregateMetric<@NonNull Duration> EXERCISE_DURATION_TOTAL
```

Metric identifier to retrieve the total exercise time from `https://developer.android.com/reference/androidx/health/connect/client/aggregate/AggregationResult`.

## Public constructors

### ExerciseSessionRecord

Added in [1.2.0-alpha06](https://developer.android.com/jetpack/androidx/releases/health-connect#1.2.0-alpha06)

```
public 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,
    @FloatRange(from = 0.0, to = 10.0) Float rateOfPerceivedExertion
)
```

## Public methods

### equals

```
public boolean equals(Object other)
```

### getEndTime

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public @NonNull Instant getEndTime()
```

End time of the record.

### getEndZoneOffset

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public ZoneOffset getEndZoneOffset()
```

User experienced zone offset at `https://developer.android.com/reference/androidx/health/connect/client/records/IntervalRecord#endTime()`, or null if unknown. Providing these will help history aggregations results stay consistent should user travel. Queries with user experienced time filters will assume system current zone offset if the information is absent.

### getExerciseRouteResult

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public final @NonNull ExerciseRouteResult getExerciseRouteResult()
```

`https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseRouteResult` of the session. Location data points of `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseRoute` should be within the parent session, and should be before the end time of the session.

### getExerciseType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public final int getExerciseType()
```

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

### getLaps

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public final @NonNull List<@NonNull ExerciseLap> getLaps()
```

`https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseLap`s of the session. Optional field. Time in laps should be within the parent session, and should not overlap with each other.

### getMetadata

```
public @NonNull Metadata getMetadata()
```

Set of common metadata associated with the written record.

### getNotes

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public final String getNotes()
```

Additional notes for the session. Optional field.

### getPlannedExerciseSessionId

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public final String getPlannedExerciseSessionId()
```

### getRateOfPerceivedExertion

Added in [1.2.0-alpha06](https://developer.android.com/jetpack/androidx/releases/health-connect#1.2.0-alpha06)

```
public final @FloatRange(from = 0.0, to = 10.0) Float getRateOfPerceivedExertion()
```

Rate of perceived exertion (RPE) for the session. Must be between 0 and 10.

See `https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSegment#rateOfPerceivedExertion()`

### getSegments

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public final @NonNull List<@NonNull ExerciseSegment> getSegments()
```

`https://developer.android.com/reference/androidx/health/connect/client/records/ExerciseSegment`s of the session. Optional field. Time in segments should be within the parent session, and should not overlap with each other.

### getStartTime

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public @NonNull Instant getStartTime()
```

Start time of the record.

### getStartZoneOffset

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public ZoneOffset getStartZoneOffset()
```

User experienced zone offset at `https://developer.android.com/reference/androidx/health/connect/client/records/IntervalRecord#startTime()`, or null if unknown. Providing these will help history aggregations results stay consistent should user travel. Queries with user experienced time filters will assume system current zone offset if the information is absent.

### getTitle

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public final String getTitle()
```

Title of the session. Optional field.

### hashCode

```
public int hashCode()
```

### toString

```
public @NonNull String toString()
```