Health Connect exercise types: all 61 EXERCISE_TYPE_ constants, their platform values, allowed segments and same-name constants elsewhere
61 ExerciseSessionRecord.EXERCISE_TYPE_* constants · 60 with a same-name counterpart · read 2026-10-18
Health Connect names an exercise session's type with 61 ExerciseSessionRecord.EXERCISE_TYPE_ constants. 60 share a name with a constant on HealthKit, Wear OS or the Google Health API once the EXERCISE_TYPE_ prefix, case and separators are removed; the other one, ExerciseSessionRecord.EXERCISE_TYPE_OTHER_WORKOUT, has no same-name counterpart. The Jetpack reference prints every value; the platform API (android.health.connect, API level 34) numbers the same types differently in ExerciseSessionType, and the library converts between the two. Read from the sources on 2026-10-18.
The join rule and the whole crosswalk are on the workout types hub. The other lists: HKWorkoutActivityType · ExerciseType · Exercise.exerciseType.
All 61 constants
Names are copied exactly from the source; the last column lists the constants on the other platforms whose names match under the crosswalk rule, with their numbers where printed.
| Constant | Value | Platform API constant | Segments it accepts | Same name on |
|---|---|---|---|---|
| EXERCISE_TYPE_BADMINTON | 2 | EXERCISE_SESSION_TYPE_BADMINTON = 1API level 34, U Extensions 7 | Universal segments only | HealthKit: badmintonWear OS: BADMINTON (2)Google Health API: BADMINTON |
| EXERCISE_TYPE_BASEBALL | 4 | EXERCISE_SESSION_TYPE_BASEBALL = 2API level 34, U Extensions 7 | Universal segments only | HealthKit: baseballWear OS: BASEBALL (4)Google Health API: BASEBALL |
| EXERCISE_TYPE_BASKETBALL | 5 | EXERCISE_SESSION_TYPE_BASKETBALL = 3API level 34, U Extensions 7 | Universal segments only | HealthKit: basketballWear OS: BASKETBALL (5)Google Health API: BASKETBALL |
| EXERCISE_TYPE_BIKING | 8 | EXERCISE_SESSION_TYPE_BIKING = 4API level 34, U Extensions 7 | BIKING | Wear OS: BIKING (8)Google Health API: BIKING |
| EXERCISE_TYPE_BIKING_STATIONARY | 9 | EXERCISE_SESSION_TYPE_BIKING_STATIONARY = 5API level 34, U Extensions 7 | BIKING_STATIONARY | Wear OS: BIKING_STATIONARY (9) |
| EXERCISE_TYPE_BOOT_CAMP | 10 | EXERCISE_SESSION_TYPE_BOOT_CAMP = 6API level 34, U Extensions 7 | Any segment type | Wear OS: BOOT_CAMP (10)Google Health API: BOOTCAMP |
| EXERCISE_TYPE_BOXING | 11 | EXERCISE_SESSION_TYPE_BOXING = 7API level 34, U Extensions 7 | Universal segments only | HealthKit: boxingWear OS: BOXING (11)Google Health API: BOXING |
| EXERCISE_TYPE_CALISTHENICS | 13 | EXERCISE_SESSION_TYPE_CALISTHENICS = 8API level 34, U Extensions 7 | 42 segment types (EXERCISE_SEGMENTS) | Wear OS: CALISTHENICS (13)Google Health API: CALISTHENICSSide by side → |
| EXERCISE_TYPE_CRICKET | 14 | EXERCISE_SESSION_TYPE_CRICKET = 9API level 34, U Extensions 7 | Universal segments only | HealthKit: cricketWear OS: CRICKET (14)Google Health API: CRICKET |
| EXERCISE_TYPE_DANCING | 16 | EXERCISE_SESSION_TYPE_DANCING = 10API level 34, U Extensions 7 | Universal segments only | Wear OS: DANCING (16)Google Health API: DANCING |
| EXERCISE_TYPE_ELLIPTICAL | 25 | EXERCISE_SESSION_TYPE_ELLIPTICAL = 60API level 34, U Extensions 7 | ELLIPTICAL | HealthKit: ellipticalWear OS: ELLIPTICAL (25)Google Health API: ELLIPTICALSide by side → |
| EXERCISE_TYPE_EXERCISE_CLASS | 26 | EXERCISE_SESSION_TYPE_EXERCISE_CLASS = 11API level 34, U Extensions 7 | YOGA, BIKING_STATIONARY, PILATES, HIGH_INTENSITY_INTERVAL_TRAINING | Wear OS: EXERCISE_CLASS (26)Google Health API: EXERCISE_CLASS |
| EXERCISE_TYPE_FENCING | 27 | EXERCISE_SESSION_TYPE_FENCING = 12API level 34, U Extensions 7 | Universal segments only | HealthKit: fencingWear OS: FENCING (27)Google Health API: FENCING |
| EXERCISE_TYPE_FOOTBALL_AMERICAN | 28 | EXERCISE_SESSION_TYPE_FOOTBALL_AMERICAN = 13API level 34, U Extensions 7 | Universal segments only | Wear OS: FOOTBALL_AMERICAN (29)Google Health API: FOOTBALL_AMERICAN |
| EXERCISE_TYPE_FOOTBALL_AUSTRALIAN | 29 | EXERCISE_SESSION_TYPE_FOOTBALL_AUSTRALIAN = 14API level 34, U Extensions 7 | Universal segments only | Wear OS: FOOTBALL_AUSTRALIAN (30)Google Health API: FOOTBALL_AUSTRALIAN |
| EXERCISE_TYPE_FRISBEE_DISC | 31 | EXERCISE_SESSION_TYPE_FRISBEE_DISC = 15API level 34, U Extensions 7 | Universal segments only | Wear OS: FRISBEE_DISC (28) |
| EXERCISE_TYPE_GOLF | 32 | EXERCISE_SESSION_TYPE_GOLF = 16API level 34, U Extensions 7 | Universal segments only | HealthKit: golfWear OS: GOLF (32)Google Health API: GOLF |
| EXERCISE_TYPE_GUIDED_BREATHING | 33 | EXERCISE_SESSION_TYPE_GUIDED_BREATHING = 17API level 34, U Extensions 7This constant was deprecated in API level 37. Use MindfulnessSessionRecord of the corresponding type MindfulnessSessionRecord.MINDFULNESS_SESSION_TYPE_BREATHING. | Universal segments only | Wear OS: GUIDED_BREATHING (33) |
| EXERCISE_TYPE_GYMNASTICS | 34 | EXERCISE_SESSION_TYPE_GYMNASTICS = 18API level 34, U Extensions 7 | 42 segment types (EXERCISE_SEGMENTS) | HealthKit: gymnasticsWear OS: GYMNASTICS (34)Google Health API: GYMNASTICS |
| EXERCISE_TYPE_HANDBALL | 35 | EXERCISE_SESSION_TYPE_HANDBALL = 19API level 34, U Extensions 7 | Universal segments only | HealthKit: handballWear OS: HANDBALL (35)Google Health API: HANDBALL |
| EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING | 36 | EXERCISE_SESSION_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING = 20API level 34, U Extensions 7 | Any segment type | HealthKit: highIntensityIntervalTrainingWear OS: HIGH_INTENSITY_INTERVAL_TRAINING (36)Side by side → |
| EXERCISE_TYPE_HIKING | 37 | EXERCISE_SESSION_TYPE_HIKING = 21API level 34, U Extensions 7 | WALKING, WHEELCHAIR | HealthKit: hikingWear OS: HIKING (37)Google Health API: HIKINGSide by side → |
| EXERCISE_TYPE_ICE_HOCKEY | 38 | EXERCISE_SESSION_TYPE_ICE_HOCKEY = 22API level 34, U Extensions 7 | Universal segments only | Wear OS: ICE_HOCKEY (38) |
| EXERCISE_TYPE_ICE_SKATING | 39 | EXERCISE_SESSION_TYPE_ICE_SKATING = 23API level 34, U Extensions 7 | Universal segments only | Wear OS: ICE_SKATING (39)Google Health API: ICE_SKATING |
| EXERCISE_TYPE_MARTIAL_ARTS | 44 | EXERCISE_SESSION_TYPE_MARTIAL_ARTS = 24API level 34, U Extensions 7 | Universal segments only | HealthKit: martialArtsWear OS: MARTIAL_ARTS (44)Google Health API: MARTIAL_ARTS |
EXERCISE_TYPE_OTHER_WORKOUTCan 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. | 0 | EXERCISE_SESSION_TYPE_OTHER_WORKOUT = 58API level 34, U Extensions 7 | Any segment type | No same-name constant |
| EXERCISE_TYPE_PADDLING | 46 | EXERCISE_SESSION_TYPE_PADDLING = 25API level 34, U Extensions 7 | Universal segments only | Wear OS: PADDLING (46) |
| EXERCISE_TYPE_PARAGLIDING | 47 | EXERCISE_SESSION_TYPE_PARAGLIDING = 26API level 34, U Extensions 7 | Universal segments only | Wear OS: PARA_GLIDING (47)Google Health API: PARAGLIDING |
| EXERCISE_TYPE_PILATES | 48 | EXERCISE_SESSION_TYPE_PILATES = 27API level 34, U Extensions 7 | PILATES | HealthKit: pilatesWear OS: PILATES (48)Google Health API: PILATESSide by side → |
| EXERCISE_TYPE_RACQUETBALL | 50 | EXERCISE_SESSION_TYPE_RACQUETBALL = 28API level 34, U Extensions 7 | Universal segments only | HealthKit: racquetballWear OS: RACQUETBALL (50)Google Health API: RACQUETBALL |
| EXERCISE_TYPE_ROCK_CLIMBING | 51 | EXERCISE_SESSION_TYPE_ROCK_CLIMBING = 29API level 34, U Extensions 7 | Universal segments only | Wear OS: ROCK_CLIMBING (51)Google Health API: ROCK_CLIMBING |
| EXERCISE_TYPE_ROLLER_HOCKEY | 52 | EXERCISE_SESSION_TYPE_ROLLER_HOCKEY = 30API level 34, U Extensions 7 | Universal segments only | Wear OS: ROLLER_HOCKEY (52) |
| EXERCISE_TYPE_ROWING | 53 | EXERCISE_SESSION_TYPE_ROWING = 31API level 34, U Extensions 7 | Universal segments only | HealthKit: rowingWear OS: ROWING (53)Google Health API: ROWING |
| EXERCISE_TYPE_ROWING_MACHINE | 54 | EXERCISE_SESSION_TYPE_ROWING_MACHINE = 61API level 34, U Extensions 7 | ROWING_MACHINE | Wear OS: ROWING_MACHINE (54)Google Health API: ROWING_MACHINE |
| EXERCISE_TYPE_RUGBY | 55 | EXERCISE_SESSION_TYPE_RUGBY = 32API level 34, U Extensions 7 | Universal segments only | HealthKit: rugbyWear OS: RUGBY (57)Google Health API: RUGBY |
| EXERCISE_TYPE_RUNNING | 56 | EXERCISE_SESSION_TYPE_RUNNING = 33API level 34, U Extensions 7 | RUNNING, WALKING | HealthKit: runningWear OS: RUNNING (55)Google Health API: RUNNINGSide by side → |
| EXERCISE_TYPE_RUNNING_TREADMILL | 57 | EXERCISE_SESSION_TYPE_RUNNING_TREADMILL = 34API level 34, U Extensions 7 | RUNNING_TREADMILL | Wear OS: RUNNING_TREADMILL (56) |
| EXERCISE_TYPE_SAILING | 58 | EXERCISE_SESSION_TYPE_SAILING = 35API level 34, U Extensions 7 | Universal segments only | HealthKit: sailingWear OS: SAILING (58)Google Health API: SAILING |
| EXERCISE_TYPE_SCUBA_DIVING | 59 | EXERCISE_SESSION_TYPE_SCUBA_DIVING = 36API level 34, U Extensions 7 | Universal segments only | Wear OS: SCUBA_DIVING (59)Google Health API: SCUBA_DIVING |
| EXERCISE_TYPE_SKATING | 60 | EXERCISE_SESSION_TYPE_SKATING = 37API level 34, U Extensions 7 | Universal segments only | Wear OS: SKATING (60)Google Health API: SKATING |
| EXERCISE_TYPE_SKIING | 61 | EXERCISE_SESSION_TYPE_SKIING = 38API level 34, U Extensions 7 | Universal segments only | Wear OS: SKIING (61)Google Health API: SKIING |
| EXERCISE_TYPE_SNOWBOARDING | 62 | EXERCISE_SESSION_TYPE_SNOWBOARDING = 39API level 34, U Extensions 7 | Universal segments only | HealthKit: snowboardingWear OS: SNOWBOARDING (62)Google Health API: SNOWBOARDING |
| EXERCISE_TYPE_SNOWSHOEING | 63 | EXERCISE_SESSION_TYPE_SNOWSHOEING = 40API level 34, U Extensions 7 | Universal segments only | Wear OS: SNOWSHOEING (63)Google Health API: SNOWSHOEING |
| EXERCISE_TYPE_SOCCER | 64 | EXERCISE_SESSION_TYPE_SOCCER = 41API level 34, U Extensions 7 | Universal segments only | HealthKit: soccerWear OS: SOCCER (64)Google Health API: SOCCER |
| EXERCISE_TYPE_SOFTBALL | 65 | EXERCISE_SESSION_TYPE_SOFTBALL = 42API level 34, U Extensions 7 | Universal segments only | HealthKit: softballWear OS: SOFTBALL (65)Google Health API: SOFTBALL |
| EXERCISE_TYPE_SQUASH | 66 | EXERCISE_SESSION_TYPE_SQUASH = 43API level 34, U Extensions 7 | Universal segments only | HealthKit: squashWear OS: SQUASH (66)Google Health API: SQUASH |
| EXERCISE_TYPE_STAIR_CLIMBING | 68 | EXERCISE_SESSION_TYPE_STAIR_CLIMBING = 44API level 34, U Extensions 7 | STAIR_CLIMBING | HealthKit: stairClimbingWear OS: STAIR_CLIMBING (68)Side by side → |
| EXERCISE_TYPE_STAIR_CLIMBING_MACHINE | 69 | EXERCISE_SESSION_TYPE_STAIR_CLIMBING_MACHINE = 59API level 34, U Extensions 7 | STAIR_CLIMBING_MACHINE | Wear OS: STAIR_CLIMBING_MACHINE (69) |
| EXERCISE_TYPE_STRENGTH_TRAINING | 70 | EXERCISE_SESSION_TYPE_STRENGTH_TRAINING = 45API level 34, U Extensions 7 | 42 segment types (EXERCISE_SEGMENTS) | Wear OS: STRENGTH_TRAINING (70)Google Health API: STRENGTH_TRAINING |
| EXERCISE_TYPE_STRETCHING | 71 | EXERCISE_SESSION_TYPE_STRETCHING = 46API level 34, U Extensions 7 | Universal segments only | Wear OS: STRETCHING (71)Google Health API: STRETCHING |
| EXERCISE_TYPE_SURFING | 72 | EXERCISE_SESSION_TYPE_SURFING = 47API level 34, U Extensions 7 | Universal segments only | Wear OS: SURFING (72)Google Health API: SURFING |
| EXERCISE_TYPE_SWIMMING_OPEN_WATER | 73 | EXERCISE_SESSION_TYPE_SWIMMING_OPEN_WATER = 48API level 34, U Extensions 7 | SWIMMING_OPEN_WATER, SWIMMING_BACKSTROKE, SWIMMING_BREASTSTROKE, SWIMMING_FREESTYLE, SWIMMING_BUTTERFLY, SWIMMING_MIXED, SWIMMING_OTHER | Wear OS: SWIMMING_OPEN_WATER (73)Google Health API: SWIMMING_OPEN_WATER |
| EXERCISE_TYPE_SWIMMING_POOL | 74 | EXERCISE_SESSION_TYPE_SWIMMING_POOL = 49API level 34, U Extensions 7 | SWIMMING_POOL, SWIMMING_BACKSTROKE, SWIMMING_BREASTSTROKE, SWIMMING_FREESTYLE, SWIMMING_BUTTERFLY, SWIMMING_MIXED, SWIMMING_OTHER | Wear OS: SWIMMING_POOL (74)Google Health API: SWIMMING_POOL |
| EXERCISE_TYPE_TABLE_TENNIS | 75 | EXERCISE_SESSION_TYPE_TABLE_TENNIS = 50API level 34, U Extensions 7 | Universal segments only | HealthKit: tableTennisWear OS: TABLE_TENNIS (75)Google Health API: TABLE_TENNIS |
| EXERCISE_TYPE_TENNIS | 76 | EXERCISE_SESSION_TYPE_TENNIS = 51API level 34, U Extensions 7 | Universal segments only | HealthKit: tennisWear OS: TENNIS (76)Google Health API: TENNIS |
| EXERCISE_TYPE_VOLLEYBALL | 78 | EXERCISE_SESSION_TYPE_VOLLEYBALL = 52API level 34, U Extensions 7 | Universal segments only | HealthKit: volleyballWear OS: VOLLEYBALL (78)Google Health API: VOLLEYBALL |
| EXERCISE_TYPE_WALKING | 79 | EXERCISE_SESSION_TYPE_WALKING = 53API level 34, U Extensions 7 | WALKING | HealthKit: walkingWear OS: WALKING (79)Google Health API: WALKINGSide by side → |
| EXERCISE_TYPE_WATER_POLO | 80 | EXERCISE_SESSION_TYPE_WATER_POLO = 54API level 34, U Extensions 7 | Universal segments only | HealthKit: waterPoloWear OS: WATER_POLO (80)Google Health API: WATER_POLO |
| EXERCISE_TYPE_WEIGHTLIFTING | 81 | EXERCISE_SESSION_TYPE_WEIGHTLIFTING = 55API level 34, U Extensions 7 | 42 segment types (EXERCISE_SEGMENTS) | Wear OS: WEIGHTLIFTING (81)Google Health API: WEIGHTLIFTING |
| EXERCISE_TYPE_WHEELCHAIR | 82 | EXERCISE_SESSION_TYPE_WHEELCHAIR = 56API level 34, U Extensions 7 | WHEELCHAIR | Google Health API: WHEELCHAIR |
| EXERCISE_TYPE_YOGA | 83 | EXERCISE_SESSION_TYPE_YOGA = 57API level 34, U Extensions 7 | YOGA | HealthKit: yogaWear OS: YOGA (83)Google Health API: YOGASide by side → |
Two numberings for one list
The values above are the Jetpack library’s ExerciseSessionRecord constants. The platform API that ships in Android (android.health.connect.datatypes.ExerciseSessionType) defines its own constants with different integers: 61 of the 61 pairs differ; EXERCISE_TYPE_RUNNING is 56 in the library and EXERCISE_SESSION_TYPE_RUNNING is 33 on the platform. The library converts between the two in IntDefMappings.kt, whose rows pair the constants in the table above, for example:
ExerciseSessionRecord.EXERCISE_TYPE_RUNNING to PlatformExerciseSessionType.EXERCISE_SESSION_TYPE_RUNNING
Which segment types each session type accepts
Google’s reference documents ExerciseSegment.isSegmentTypeCompatibleWithSessionType() (added in 1.2.0-alpha06) as “Is a segment type compatible with a session type.”. The table it reads is in the library source: every session accepts the 5 universal segment types (OTHER_WORKOUT, PAUSE, REST, STRETCHING and UNKNOWN), EXERCISE_TYPE_BOOT_CAMP, EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING and EXERCISE_TYPE_OTHER_WORKOUT accept every segment type, and the session types the table names accept their own list on top. The Segments column above shows each one.
EXERCISE_SEGMENTS, used by EXERCISE_TYPE_CALISTHENICS, EXERCISE_TYPE_GYMNASTICS, EXERCISE_TYPE_STRENGTH_TRAINING and EXERCISE_TYPE_WEIGHTLIFTING: ARM_CURL, BACK_EXTENSION, BALL_SLAM, BARBELL_SHOULDER_PRESS, BENCH_PRESS, BENCH_SIT_UP, BURPEE, CRUNCH, DEADLIFT, DOUBLE_ARM_TRICEPS_EXTENSION, DUMBBELL_CURL_LEFT_ARM, DUMBBELL_CURL_RIGHT_ARM, DUMBBELL_FRONT_RAISE, DUMBBELL_LATERAL_RAISE, DUMBBELL_ROW, DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM, DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM, DUMBBELL_TRICEPS_EXTENSION_TWO_ARM, FORWARD_TWIST, FRONT_RAISE, HIP_THRUST, HULA_HOOP, JUMP_ROPE, JUMPING_JACK, KETTLEBELL_SWING, LATERAL_RAISE, LAT_PULL_DOWN, LEG_CURL, LEG_EXTENSION, LEG_PRESS, LEG_RAISE, LUNGE, MOUNTAIN_CLIMBER, PLANK, PULL_UP, PUNCH, SHOULDER_PRESS, SINGLE_ARM_TRICEPS_EXTENSION, SIT_UP, SQUAT, UPPER_TWIST and WEIGHTLIFTING.
In the source, the ExerciseSessionRecord constructor runs require( isSegmentTypeCompatibleWithSessionType(segment.segmentType, exerciseType) ) { "segmentType and sessionType is not compatible." } in the branch that does not hand the record to the platform API (init { if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && isAtLeastSdkExtension21() ) { @Suppress("CheckReturnValue") this.toPlatformRecord() } else {).
All 68 ExerciseSegment types
EXERCISE_SEGMENT_TYPE_ARM_CURL= 1 · Use this type for arm curls.EXERCISE_SEGMENT_TYPE_BACK_EXTENSION= 2 · Use this type for back extensions.EXERCISE_SEGMENT_TYPE_BALL_SLAM= 3 · Use this type for ball slams.EXERCISE_SEGMENT_TYPE_BARBELL_SHOULDER_PRESS= 4 · Use this type for barbel shoulder press.EXERCISE_SEGMENT_TYPE_BENCH_PRESS= 5 · Use this type for bench presses.EXERCISE_SEGMENT_TYPE_BENCH_SIT_UP= 6 · Use this type for bench sit up.EXERCISE_SEGMENT_TYPE_BIKING= 7 · Use this type for biking.EXERCISE_SEGMENT_TYPE_BIKING_STATIONARY= 8 · Use this type for stationary biking.EXERCISE_SEGMENT_TYPE_BURPEE= 9 · Use this type for burpees.EXERCISE_SEGMENT_TYPE_CRUNCH= 10 · Use this type for crunches.EXERCISE_SEGMENT_TYPE_DEADLIFT= 11 · Use this type for deadlifts.EXERCISE_SEGMENT_TYPE_DOUBLE_ARM_TRICEPS_EXTENSION= 12 · Use this type for double arms triceps extensions.EXERCISE_SEGMENT_TYPE_DUMBBELL_CURL_LEFT_ARM= 13 · Use this type for left arm dumbbell curl.EXERCISE_SEGMENT_TYPE_DUMBBELL_CURL_RIGHT_ARM= 14EXERCISE_SEGMENT_TYPE_DUMBBELL_FRONT_RAISE= 15 · Use this type for right arm dumbbell curl.(reads like the constant before it)EXERCISE_SEGMENT_TYPE_DUMBBELL_LATERAL_RAISE= 16 · Use this type for dumbbell lateral raises.EXERCISE_SEGMENT_TYPE_DUMBBELL_ROW= 17 · Use this type for dumbbells rows.EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM= 18 · Use this type for left arm triceps extensions.EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM= 19 · Use this type for right arm triceps extensions.EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_TWO_ARM= 20 · Use this type for two arms triceps extensions.EXERCISE_SEGMENT_TYPE_ELLIPTICAL= 21 · Use this type for elliptical workout.EXERCISE_SEGMENT_TYPE_FORWARD_TWIST= 22 · Use this type for forward twists.EXERCISE_SEGMENT_TYPE_FRONT_RAISE= 23 · Use this type for front raises.EXERCISE_SEGMENT_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING= 24 · Use this type for high intensity training.EXERCISE_SEGMENT_TYPE_HIP_THRUST= 25 · Use this type for hip thrusts.EXERCISE_SEGMENT_TYPE_HULA_HOOP= 26 · Use this type for hula-hoops.EXERCISE_SEGMENT_TYPE_JUMPING_JACK= 27 · Use this type for jumping jacks.EXERCISE_SEGMENT_TYPE_JUMP_ROPE= 28 · Use this type for jump rope.EXERCISE_SEGMENT_TYPE_KETTLEBELL_SWING= 29 · Use this type for kettlebell swings.EXERCISE_SEGMENT_TYPE_LATERAL_RAISE= 30 · Use this type for lateral raises.EXERCISE_SEGMENT_TYPE_LAT_PULL_DOWN= 31 · Use this type for lat pull-downs.EXERCISE_SEGMENT_TYPE_LEG_CURL= 32 · Use this type for leg curls.EXERCISE_SEGMENT_TYPE_LEG_EXTENSION= 33 · Use this type for leg extensions.EXERCISE_SEGMENT_TYPE_LEG_PRESS= 34 · Use this type for leg presses.EXERCISE_SEGMENT_TYPE_LEG_RAISE= 35 · Use this type for leg raises.EXERCISE_SEGMENT_TYPE_LUNGE= 36 · Use this type for lunges.EXERCISE_SEGMENT_TYPE_MOUNTAIN_CLIMBER= 37 · Use this type for mountain climber.EXERCISE_SEGMENT_TYPE_OTHER_WORKOUT= 38 · Use this type for other workout.EXERCISE_SEGMENT_TYPE_PAUSE= 39 · Use this type for the pause.EXERCISE_SEGMENT_TYPE_PILATES= 40 · Use this type for pilates.EXERCISE_SEGMENT_TYPE_PLANK= 41 · Use this type for plank.EXERCISE_SEGMENT_TYPE_PULL_UP= 42 · Use this type for pull-ups.EXERCISE_SEGMENT_TYPE_PUNCH= 43 · Use this type for punches.EXERCISE_SEGMENT_TYPE_REST= 44 · Use this type for the rest.EXERCISE_SEGMENT_TYPE_ROWING_MACHINE= 45 · Use this type for rowing machine workout.EXERCISE_SEGMENT_TYPE_RUNNING= 46 · Use this type for running.EXERCISE_SEGMENT_TYPE_RUNNING_TREADMILL= 47 · Use this type for treadmill running.EXERCISE_SEGMENT_TYPE_SHOULDER_PRESS= 48EXERCISE_SEGMENT_TYPE_SINGLE_ARM_TRICEPS_EXTENSION= 49 · Use this type for shoulder press.(reads like the constant before it)EXERCISE_SEGMENT_TYPE_SIT_UP= 50 · Use this type for sit-ups.EXERCISE_SEGMENT_TYPE_SQUAT= 51 · Use this type for squats.EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING= 52 · Use this type for stair climbing.EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING_MACHINE= 53 · Use this type for stair climbing machine.EXERCISE_SEGMENT_TYPE_STRETCHING= 54 · Use this type for stretching.EXERCISE_SEGMENT_TYPE_SWIMMING_BACKSTROKE= 55 · Use this type for backstroke swimming.EXERCISE_SEGMENT_TYPE_SWIMMING_BREASTSTROKE= 56 · Use this type for breaststroke swimming.EXERCISE_SEGMENT_TYPE_SWIMMING_BUTTERFLY= 57 · Use this type for butterfly swimming.EXERCISE_SEGMENT_TYPE_SWIMMING_FREESTYLE= 58EXERCISE_SEGMENT_TYPE_SWIMMING_MIXED= 59 · Use this type for mixed swimming.EXERCISE_SEGMENT_TYPE_SWIMMING_OPEN_WATER= 60 · Use this type for swimming in open water.EXERCISE_SEGMENT_TYPE_SWIMMING_OTHER= 61 · Use this type if other swimming styles are not suitable.EXERCISE_SEGMENT_TYPE_SWIMMING_POOL= 62 · Use this type for swimming in the pool.EXERCISE_SEGMENT_TYPE_UNKNOWN= 0 · Use this type if the type of the exercise segment is not known.EXERCISE_SEGMENT_TYPE_UPPER_TWIST= 63 · Use this type for upper twists.EXERCISE_SEGMENT_TYPE_WALKING= 64 · Use this type for walking.EXERCISE_SEGMENT_TYPE_WEIGHTLIFTING= 65 · Use this type for weightlifting.EXERCISE_SEGMENT_TYPE_WHEELCHAIR= 66 · Use this type for wheelchair.EXERCISE_SEGMENT_TYPE_YOGA= 67 · Use this type for yoga.
No same-name counterpart (1)
No other platform spells these names the same way under the rule. That is a statement about names, not a finding that the activity is missing elsewhere.
The catch-all: ExerciseSessionRecord.EXERCISE_TYPE_OTHER_WORKOUT
- “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.” (ExerciseSessionRecord (Jetpack reference)) - “internal fun Int.toSdkExerciseSessionType(): Int { return PLATFORM_TO_SDK_EXERCISE_SESSION_TYPE[this] ?: ExerciseSessionRecord.EXERCISE_TYPE_OTHER_WORKOUT }” (IntDefMappings.kt (androidx source))
Where the sources disagree (6)
- Listed by a guide, not by the referenceEXERCISE_TYPE_UNKNOWNGoogle's Health Connect data-types guide (last updated 2026-09-23) lists EXERCISE_TYPE_UNKNOWN under "Exercise types" in its ExerciseSessionRecord row, one of 62 names there; the Jetpack ExerciseSessionRecord reference does not define it, and neither does the androidx source.
- “EXERCISE_TYPE_UNKNOWN” (Health Connect data types)
- A description that reads like another constant'sEXERCISE_SEGMENT_TYPE_DUMBBELL_FRONT_RAISEGoogle's ExerciseSegment reference describes EXERCISE_SEGMENT_TYPE_DUMBBELL_FRONT_RAISE (15) as "Use this type for right arm dumbbell curl.", the words of the constant before it, EXERCISE_SEGMENT_TYPE_DUMBBELL_CURL_RIGHT_ARM (14), which it gives no description; the androidx source has the same comment above EXERCISE_SEGMENT_TYPE_DUMBBELL_FRONT_RAISE.
- “Use this type for right arm dumbbell curl.” (ExerciseSegment (Jetpack reference))
- “/** Use this type for right arm dumbbell curl. */ public const val EXERCISE_SEGMENT_TYPE_DUMBBELL_FRONT_RAISE: Int = 15” (ExerciseSegment.kt (androidx source))
- A description that reads like another constant'sEXERCISE_SEGMENT_TYPE_SINGLE_ARM_TRICEPS_EXTENSIONGoogle's ExerciseSegment reference describes EXERCISE_SEGMENT_TYPE_SINGLE_ARM_TRICEPS_EXTENSION (49) as "Use this type for shoulder press.", the words of the constant before it, EXERCISE_SEGMENT_TYPE_SHOULDER_PRESS (48), which it gives no description; the androidx source has the same comment above EXERCISE_SEGMENT_TYPE_SINGLE_ARM_TRICEPS_EXTENSION.
- “Use this type for shoulder press.” (ExerciseSegment (Jetpack reference))
- “/** Use this type for shoulder press. */ public const val EXERCISE_SEGMENT_TYPE_SINGLE_ARM_TRICEPS_EXTENSION: Int = 49” (ExerciseSegment.kt (androidx source))
- Deprecated on one API, not the otherEXERCISE_TYPE_GUIDED_BREATHINGThe platform API deprecates EXERCISE_SESSION_TYPE_GUIDED_BREATHING in API level 37; the Jetpack reference does not mark EXERCISE_TYPE_GUIDED_BREATHING, which the library converts to it, deprecated.
- “This constant was deprecated in API level 37. Use
MindfulnessSessionRecordof the corresponding typeMindfulnessSessionRecord.MINDFULNESS_SESSION_TYPE_BREATHING.” (ExerciseSessionType (Android platform reference)) - “ExerciseSessionRecord.EXERCISE_TYPE_GUIDED_BREATHING to @Suppress("DEPRECATION") PlatformExerciseSessionType.EXERCISE_SESSION_TYPE_GUIDED_BREATHING” (IntDefMappings.kt (androidx source))
- “This constant was deprecated in API level 37. Use
- Platform constant with no Jetpack counterpartEXERCISE_SESSION_TYPE_UNKNOWNThe platform ExerciseSessionType reference lists EXERCISE_SESSION_TYPE_UNKNOWN = 0; no Jetpack constant maps to it in IntDefMappings.kt, and the library's toSdkExerciseSessionType() turns an unmapped platform value into EXERCISE_TYPE_OTHER_WORKOUT.
- “Use this type if the type of the exercise session is not known.” (ExerciseSessionType (Android platform reference))
- “internal fun Int.toSdkExerciseSessionType(): Int { return PLATFORM_TO_SDK_EXERCISE_SESSION_TYPE[this] ?: ExerciseSessionRecord.EXERCISE_TYPE_OTHER_WORKOUT }” (IntDefMappings.kt (androidx source))
- Guide sample names a member the reference lacksExerciseSessionRecord.ExerciseType.RUNNING2 Health Connect guides' samples write exerciseType = ExerciseSessionRecord.ExerciseType.RUNNING; the ExerciseSessionRecord reference lists no ExerciseType member, and its constant is EXERCISE_TYPE_RUNNING = 56.
- “exerciseType = ExerciseSessionRecord.ExerciseType.RUNNING” (Add exercise routes (Health Connect))
- “exerciseType = ExerciseSessionRecord.ExerciseType.RUNNING” (Training plans (Health Connect))
- “const val EXERCISE_TYPE_RUNNING = 56: Int” (ExerciseSessionRecord (Jetpack reference))
Side by side, one activity at a time
More on Android Health Connect on this site
Questions
Is EXERCISE_TYPE_UNKNOWN a Health Connect exercise type?
Google's Health Connect data-types guide lists it, but the Jetpack ExerciseSessionRecord reference does not define it. The platform API does have EXERCISE_SESSION_TYPE_UNKNOWN (0), and the library turns a platform value it has no constant for into EXERCISE_TYPE_OTHER_WORKOUT. In Jetpack code the catch-all is EXERCISE_TYPE_OTHER_WORKOUT (0).
Which Health Connect exercise types accept any segment type?
EXERCISE_TYPE_BOOT_CAMP, EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING and EXERCISE_TYPE_OTHER_WORKOUT. The library's segment table lists them in UNIVERSAL_SESSION_TYPES, and isSegmentTypeCompatibleWithSessionType returns true for any segment in a session of those types. Every other session type accepts the 5 universal segment types plus the ones the table names for it.
What happens to an exercise type Health Connect does not recognise?
Google's reference for EXERCISE_TYPE_OTHER_WORKOUT says: “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.” When the library converts a platform record, it also maps any platform value it has no constant for to EXERCISE_TYPE_OTHER_WORKOUT (toSdkExerciseSessionType in IntDefMappings.kt).
Sources (6)
- ExerciseSessionRecord (Jetpack reference) · read 2026-10-18 · page last updated 2026-08-26 · sha256 21ca77ecf582
- ExerciseSessionType (Android platform reference) · read 2026-10-18 · page last updated 2026-08-03 · sha256 7dd4604a4779
- ExerciseSessionRecord.kt (androidx source) · androidx/androidx, branch androidx-main · read 2026-10-18 · sha256 0c1f0af31734
- IntDefMappings.kt (androidx source) · androidx/androidx, branch androidx-main · read 2026-10-18 · sha256 12aa0de76928
- ExerciseSegment (Jetpack reference) · read 2026-10-18 · page last updated 2026-08-26 · sha256 355facabc40c
- ExerciseSegment.kt (androidx source) · androidx/androidx, branch androidx-main · read 2026-10-18 · sha256 60a01a3fdec0