• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Signature format: 2.0
2package android.health.connect {
3
4  public final class AggregateRecordsGroupedByDurationResponse<T> {
5    method @Nullable public T get(@NonNull android.health.connect.datatypes.AggregationType<T>);
6    method @NonNull public java.util.Set<android.health.connect.datatypes.DataOrigin> getDataOrigins(@NonNull android.health.connect.datatypes.AggregationType<T>);
7    method @NonNull public java.time.Instant getEndTime();
8    method @NonNull public java.time.Instant getStartTime();
9    method @Nullable public java.time.ZoneOffset getZoneOffset(@NonNull android.health.connect.datatypes.AggregationType<T>);
10  }
11
12  public final class AggregateRecordsGroupedByPeriodResponse<T> {
13    method @Nullable public T get(@NonNull android.health.connect.datatypes.AggregationType<T>);
14    method @NonNull public java.util.Set<android.health.connect.datatypes.DataOrigin> getDataOrigins(@NonNull android.health.connect.datatypes.AggregationType<T>);
15    method @NonNull public java.time.LocalDateTime getEndTime();
16    method @NonNull public java.time.LocalDateTime getStartTime();
17    method @Nullable public java.time.ZoneOffset getZoneOffset(@NonNull android.health.connect.datatypes.AggregationType<T>);
18  }
19
20  public final class AggregateRecordsRequest<T> {
21    method @NonNull public java.util.Set<android.health.connect.datatypes.AggregationType<T>> getAggregationTypes();
22    method @NonNull public java.util.Set<android.health.connect.datatypes.DataOrigin> getDataOriginsFilters();
23    method @NonNull public android.health.connect.TimeRangeFilter getTimeRangeFilter();
24  }
25
26  public static final class AggregateRecordsRequest.Builder<T> {
27    ctor public AggregateRecordsRequest.Builder(@NonNull android.health.connect.TimeRangeFilter);
28    method @NonNull public android.health.connect.AggregateRecordsRequest.Builder<T> addAggregationType(@NonNull android.health.connect.datatypes.AggregationType<T>);
29    method @NonNull public android.health.connect.AggregateRecordsRequest.Builder<T> addDataOriginsFilter(@NonNull android.health.connect.datatypes.DataOrigin);
30    method @NonNull public android.health.connect.AggregateRecordsRequest<T> build();
31  }
32
33  public final class AggregateRecordsResponse<T> {
34    method @Nullable public T get(@NonNull android.health.connect.datatypes.AggregationType<T>);
35    method @NonNull public java.util.Set<android.health.connect.datatypes.DataOrigin> getDataOrigins(@NonNull android.health.connect.datatypes.AggregationType<T>);
36    method @Nullable public java.time.ZoneOffset getZoneOffset(@NonNull android.health.connect.datatypes.AggregationType<T>);
37  }
38
39  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class CreateMedicalDataSourceRequest implements android.os.Parcelable {
40    method public int describeContents();
41    method @NonNull public String getDisplayName();
42    method @NonNull public android.net.Uri getFhirBaseUri();
43    method @NonNull public android.health.connect.datatypes.FhirVersion getFhirVersion();
44    method public void writeToParcel(@NonNull android.os.Parcel, int);
45    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.CreateMedicalDataSourceRequest> CREATOR;
46  }
47
48  public static final class CreateMedicalDataSourceRequest.Builder {
49    ctor public CreateMedicalDataSourceRequest.Builder(@NonNull android.net.Uri, @NonNull String, @NonNull android.health.connect.datatypes.FhirVersion);
50    ctor public CreateMedicalDataSourceRequest.Builder(@NonNull android.health.connect.CreateMedicalDataSourceRequest.Builder);
51    ctor public CreateMedicalDataSourceRequest.Builder(@NonNull android.health.connect.CreateMedicalDataSourceRequest);
52    method @NonNull public android.health.connect.CreateMedicalDataSourceRequest build();
53    method @NonNull public android.health.connect.CreateMedicalDataSourceRequest.Builder setDisplayName(@NonNull String);
54    method @NonNull public android.health.connect.CreateMedicalDataSourceRequest.Builder setFhirBaseUri(@NonNull android.net.Uri);
55    method @NonNull public android.health.connect.CreateMedicalDataSourceRequest.Builder setFhirVersion(@NonNull android.health.connect.datatypes.FhirVersion);
56  }
57
58  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class DeleteMedicalResourcesRequest implements android.os.Parcelable {
59    method public int describeContents();
60    method @NonNull public java.util.Set<java.lang.String> getDataSourceIds();
61    method @NonNull public java.util.Set<java.lang.Integer> getMedicalResourceTypes();
62    method public void writeToParcel(@NonNull android.os.Parcel, int);
63    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.DeleteMedicalResourcesRequest> CREATOR;
64  }
65
66  public static final class DeleteMedicalResourcesRequest.Builder {
67    ctor public DeleteMedicalResourcesRequest.Builder();
68    ctor public DeleteMedicalResourcesRequest.Builder(@NonNull android.health.connect.DeleteMedicalResourcesRequest.Builder);
69    ctor public DeleteMedicalResourcesRequest.Builder(@NonNull android.health.connect.DeleteMedicalResourcesRequest);
70    method @NonNull public android.health.connect.DeleteMedicalResourcesRequest.Builder addDataSourceId(@NonNull String);
71    method @NonNull public android.health.connect.DeleteMedicalResourcesRequest.Builder addMedicalResourceType(int);
72    method @NonNull public android.health.connect.DeleteMedicalResourcesRequest build();
73    method @NonNull public android.health.connect.DeleteMedicalResourcesRequest.Builder clearDataSourceIds();
74    method @NonNull public android.health.connect.DeleteMedicalResourcesRequest.Builder clearMedicalResourceTypes();
75  }
76
77  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class GetMedicalDataSourcesRequest implements android.os.Parcelable {
78    method public int describeContents();
79    method @NonNull public java.util.Set<java.lang.String> getPackageNames();
80    method public void writeToParcel(@NonNull android.os.Parcel, int);
81    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.GetMedicalDataSourcesRequest> CREATOR;
82  }
83
84  public static final class GetMedicalDataSourcesRequest.Builder {
85    ctor public GetMedicalDataSourcesRequest.Builder();
86    ctor public GetMedicalDataSourcesRequest.Builder(@NonNull android.health.connect.GetMedicalDataSourcesRequest.Builder);
87    ctor public GetMedicalDataSourcesRequest.Builder(@NonNull android.health.connect.GetMedicalDataSourcesRequest);
88    method @NonNull public android.health.connect.GetMedicalDataSourcesRequest.Builder addPackageName(@NonNull String);
89    method @NonNull public android.health.connect.GetMedicalDataSourcesRequest build();
90    method @NonNull public android.health.connect.GetMedicalDataSourcesRequest.Builder clearPackageNames();
91  }
92
93  public class HealthConnectException extends java.lang.RuntimeException {
94    method public int getErrorCode();
95    field public static final int ERROR_DATA_SYNC_IN_PROGRESS = 8; // 0x8
96    field public static final int ERROR_INTERNAL = 2; // 0x2
97    field public static final int ERROR_INVALID_ARGUMENT = 3; // 0x3
98    field public static final int ERROR_IO = 4; // 0x4
99    field public static final int ERROR_RATE_LIMIT_EXCEEDED = 7; // 0x7
100    field public static final int ERROR_REMOTE = 6; // 0x6
101    field public static final int ERROR_SECURITY = 5; // 0x5
102    field public static final int ERROR_UNKNOWN = 1; // 0x1
103    field public static final int ERROR_UNSUPPORTED_OPERATION = 9; // 0x9
104  }
105
106  public class HealthConnectManager {
107    method public <T> void aggregate(@NonNull android.health.connect.AggregateRecordsRequest<T>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.health.connect.AggregateRecordsResponse<T>,android.health.connect.HealthConnectException>);
108    method public <T> void aggregateGroupByDuration(@NonNull android.health.connect.AggregateRecordsRequest<T>, @NonNull java.time.Duration, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.health.connect.AggregateRecordsGroupedByDurationResponse<T>>,android.health.connect.HealthConnectException>);
109    method public <T> void aggregateGroupByPeriod(@NonNull android.health.connect.AggregateRecordsRequest<T>, @NonNull java.time.Period, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.health.connect.AggregateRecordsGroupedByPeriodResponse<T>>,android.health.connect.HealthConnectException>);
110    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") @RequiresPermission(android.health.connect.HealthPermissions.WRITE_MEDICAL_DATA) public void createMedicalDataSource(@NonNull android.health.connect.CreateMedicalDataSourceRequest, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.health.connect.datatypes.MedicalDataSource,android.health.connect.HealthConnectException>);
111    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") @RequiresPermission(anyOf={android.health.connect.HealthPermissions.WRITE_MEDICAL_DATA, "android.permission.MANAGE_HEALTH_DATA"}) public void deleteMedicalDataSourceWithData(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.health.connect.HealthConnectException>);
112    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") @RequiresPermission(anyOf={android.health.connect.HealthPermissions.WRITE_MEDICAL_DATA, "android.permission.MANAGE_HEALTH_DATA"}) public void deleteMedicalResources(@NonNull android.health.connect.DeleteMedicalResourcesRequest, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.health.connect.HealthConnectException>);
113    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") @RequiresPermission(anyOf={android.health.connect.HealthPermissions.WRITE_MEDICAL_DATA, "android.permission.MANAGE_HEALTH_DATA"}) public void deleteMedicalResources(@NonNull java.util.List<android.health.connect.MedicalResourceId>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.health.connect.HealthConnectException>);
114    method public void deleteRecords(@NonNull java.util.List<android.health.connect.RecordIdFilter>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.health.connect.HealthConnectException>);
115    method public void deleteRecords(@NonNull Class<? extends android.health.connect.datatypes.Record>, @NonNull android.health.connect.TimeRangeFilter, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.health.connect.HealthConnectException>);
116    method public void getChangeLogToken(@NonNull android.health.connect.changelog.ChangeLogTokenRequest, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.health.connect.changelog.ChangeLogTokenResponse,android.health.connect.HealthConnectException>);
117    method public void getChangeLogs(@NonNull android.health.connect.changelog.ChangeLogsRequest, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.health.connect.changelog.ChangeLogsResponse,android.health.connect.HealthConnectException>);
118    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public void getMedicalDataSources(@NonNull java.util.List<java.lang.String>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.health.connect.datatypes.MedicalDataSource>,android.health.connect.HealthConnectException>);
119    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public void getMedicalDataSources(@NonNull android.health.connect.GetMedicalDataSourcesRequest, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.health.connect.datatypes.MedicalDataSource>,android.health.connect.HealthConnectException>);
120    method public void insertRecords(@NonNull java.util.List<android.health.connect.datatypes.Record>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.health.connect.InsertRecordsResponse,android.health.connect.HealthConnectException>);
121    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public void readMedicalResources(@NonNull java.util.List<android.health.connect.MedicalResourceId>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.health.connect.datatypes.MedicalResource>,android.health.connect.HealthConnectException>);
122    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public void readMedicalResources(@NonNull android.health.connect.ReadMedicalResourcesRequest, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.health.connect.ReadMedicalResourcesResponse,android.health.connect.HealthConnectException>);
123    method public <T extends android.health.connect.datatypes.Record> void readRecords(@NonNull android.health.connect.ReadRecordsRequest<T>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.health.connect.ReadRecordsResponse<T>,android.health.connect.HealthConnectException>);
124    method public void updateRecords(@NonNull java.util.List<android.health.connect.datatypes.Record>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.health.connect.HealthConnectException>);
125    method @FlaggedApi("com.android.healthfitness.flags.personal_health_record") @RequiresPermission(android.health.connect.HealthPermissions.WRITE_MEDICAL_DATA) public void upsertMedicalResources(@NonNull java.util.List<android.health.connect.UpsertMedicalResourceRequest>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.health.connect.datatypes.MedicalResource>,android.health.connect.HealthConnectException>);
126    field public static final String ACTION_MANAGE_HEALTH_PERMISSIONS = "android.health.connect.action.MANAGE_HEALTH_PERMISSIONS";
127    field public static final String ACTION_REQUEST_EXERCISE_ROUTE = "android.health.connect.action.REQUEST_EXERCISE_ROUTE";
128    field public static final String CATEGORY_HEALTH_PERMISSIONS = "android.intent.category.HEALTH_PERMISSIONS";
129    field public static final String EXTRA_EXERCISE_ROUTE = "android.health.connect.extra.EXERCISE_ROUTE";
130    field public static final String EXTRA_SESSION_ID = "android.health.connect.extra.SESSION_ID";
131  }
132
133  public final class HealthPermissions {
134    field public static final String READ_ACTIVE_CALORIES_BURNED = "android.permission.health.READ_ACTIVE_CALORIES_BURNED";
135    field @FlaggedApi("com.android.healthfitness.flags.activity_intensity") public static final String READ_ACTIVITY_INTENSITY = "android.permission.health.READ_ACTIVITY_INTENSITY";
136    field public static final String READ_BASAL_BODY_TEMPERATURE = "android.permission.health.READ_BASAL_BODY_TEMPERATURE";
137    field public static final String READ_BASAL_METABOLIC_RATE = "android.permission.health.READ_BASAL_METABOLIC_RATE";
138    field public static final String READ_BLOOD_GLUCOSE = "android.permission.health.READ_BLOOD_GLUCOSE";
139    field public static final String READ_BLOOD_PRESSURE = "android.permission.health.READ_BLOOD_PRESSURE";
140    field public static final String READ_BODY_FAT = "android.permission.health.READ_BODY_FAT";
141    field public static final String READ_BODY_TEMPERATURE = "android.permission.health.READ_BODY_TEMPERATURE";
142    field public static final String READ_BODY_WATER_MASS = "android.permission.health.READ_BODY_WATER_MASS";
143    field public static final String READ_BONE_MASS = "android.permission.health.READ_BONE_MASS";
144    field public static final String READ_CERVICAL_MUCUS = "android.permission.health.READ_CERVICAL_MUCUS";
145    field public static final String READ_DISTANCE = "android.permission.health.READ_DISTANCE";
146    field public static final String READ_ELEVATION_GAINED = "android.permission.health.READ_ELEVATION_GAINED";
147    field public static final String READ_EXERCISE = "android.permission.health.READ_EXERCISE";
148    field @FlaggedApi("com.android.healthconnect.flags.read_exercise_routes_all_enabled") public static final String READ_EXERCISE_ROUTES = "android.permission.health.READ_EXERCISE_ROUTES";
149    field public static final String READ_FLOORS_CLIMBED = "android.permission.health.READ_FLOORS_CLIMBED";
150    field @FlaggedApi("com.android.healthconnect.flags.history_read") public static final String READ_HEALTH_DATA_HISTORY = "android.permission.health.READ_HEALTH_DATA_HISTORY";
151    field @FlaggedApi("com.android.healthconnect.flags.background_read") public static final String READ_HEALTH_DATA_IN_BACKGROUND = "android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND";
152    field public static final String READ_HEART_RATE = "android.permission.health.READ_HEART_RATE";
153    field public static final String READ_HEART_RATE_VARIABILITY = "android.permission.health.READ_HEART_RATE_VARIABILITY";
154    field public static final String READ_HEIGHT = "android.permission.health.READ_HEIGHT";
155    field public static final String READ_HYDRATION = "android.permission.health.READ_HYDRATION";
156    field public static final String READ_INTERMENSTRUAL_BLEEDING = "android.permission.health.READ_INTERMENSTRUAL_BLEEDING";
157    field public static final String READ_LEAN_BODY_MASS = "android.permission.health.READ_LEAN_BODY_MASS";
158    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_ALLERGIES_INTOLERANCES = "android.permission.health.READ_MEDICAL_DATA_ALLERGIES_INTOLERANCES";
159    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_CONDITIONS = "android.permission.health.READ_MEDICAL_DATA_CONDITIONS";
160    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_LABORATORY_RESULTS = "android.permission.health.READ_MEDICAL_DATA_LABORATORY_RESULTS";
161    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_MEDICATIONS = "android.permission.health.READ_MEDICAL_DATA_MEDICATIONS";
162    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_PERSONAL_DETAILS = "android.permission.health.READ_MEDICAL_DATA_PERSONAL_DETAILS";
163    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_PRACTITIONER_DETAILS = "android.permission.health.READ_MEDICAL_DATA_PRACTITIONER_DETAILS";
164    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_PREGNANCY = "android.permission.health.READ_MEDICAL_DATA_PREGNANCY";
165    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_PROCEDURES = "android.permission.health.READ_MEDICAL_DATA_PROCEDURES";
166    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_SOCIAL_HISTORY = "android.permission.health.READ_MEDICAL_DATA_SOCIAL_HISTORY";
167    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_VACCINES = "android.permission.health.READ_MEDICAL_DATA_VACCINES";
168    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_VISITS = "android.permission.health.READ_MEDICAL_DATA_VISITS";
169    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String READ_MEDICAL_DATA_VITAL_SIGNS = "android.permission.health.READ_MEDICAL_DATA_VITAL_SIGNS";
170    field public static final String READ_MENSTRUATION = "android.permission.health.READ_MENSTRUATION";
171    field @FlaggedApi("com.android.healthfitness.flags.mindfulness") public static final String READ_MINDFULNESS = "android.permission.health.READ_MINDFULNESS";
172    field public static final String READ_NUTRITION = "android.permission.health.READ_NUTRITION";
173    field public static final String READ_OVULATION_TEST = "android.permission.health.READ_OVULATION_TEST";
174    field public static final String READ_OXYGEN_SATURATION = "android.permission.health.READ_OXYGEN_SATURATION";
175    field @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final String READ_PLANNED_EXERCISE = "android.permission.health.READ_PLANNED_EXERCISE";
176    field public static final String READ_POWER = "android.permission.health.READ_POWER";
177    field public static final String READ_RESPIRATORY_RATE = "android.permission.health.READ_RESPIRATORY_RATE";
178    field public static final String READ_RESTING_HEART_RATE = "android.permission.health.READ_RESTING_HEART_RATE";
179    field public static final String READ_SEXUAL_ACTIVITY = "android.permission.health.READ_SEXUAL_ACTIVITY";
180    field @FlaggedApi("com.android.healthconnect.flags.skin_temperature") public static final String READ_SKIN_TEMPERATURE = "android.permission.health.READ_SKIN_TEMPERATURE";
181    field public static final String READ_SLEEP = "android.permission.health.READ_SLEEP";
182    field public static final String READ_SPEED = "android.permission.health.READ_SPEED";
183    field public static final String READ_STEPS = "android.permission.health.READ_STEPS";
184    field public static final String READ_TOTAL_CALORIES_BURNED = "android.permission.health.READ_TOTAL_CALORIES_BURNED";
185    field public static final String READ_VO2_MAX = "android.permission.health.READ_VO2_MAX";
186    field public static final String READ_WEIGHT = "android.permission.health.READ_WEIGHT";
187    field public static final String READ_WHEELCHAIR_PUSHES = "android.permission.health.READ_WHEELCHAIR_PUSHES";
188    field public static final String WRITE_ACTIVE_CALORIES_BURNED = "android.permission.health.WRITE_ACTIVE_CALORIES_BURNED";
189    field @FlaggedApi("com.android.healthfitness.flags.activity_intensity") public static final String WRITE_ACTIVITY_INTENSITY = "android.permission.health.WRITE_ACTIVITY_INTENSITY";
190    field public static final String WRITE_BASAL_BODY_TEMPERATURE = "android.permission.health.WRITE_BASAL_BODY_TEMPERATURE";
191    field public static final String WRITE_BASAL_METABOLIC_RATE = "android.permission.health.WRITE_BASAL_METABOLIC_RATE";
192    field public static final String WRITE_BLOOD_GLUCOSE = "android.permission.health.WRITE_BLOOD_GLUCOSE";
193    field public static final String WRITE_BLOOD_PRESSURE = "android.permission.health.WRITE_BLOOD_PRESSURE";
194    field public static final String WRITE_BODY_FAT = "android.permission.health.WRITE_BODY_FAT";
195    field public static final String WRITE_BODY_TEMPERATURE = "android.permission.health.WRITE_BODY_TEMPERATURE";
196    field public static final String WRITE_BODY_WATER_MASS = "android.permission.health.WRITE_BODY_WATER_MASS";
197    field public static final String WRITE_BONE_MASS = "android.permission.health.WRITE_BONE_MASS";
198    field public static final String WRITE_CERVICAL_MUCUS = "android.permission.health.WRITE_CERVICAL_MUCUS";
199    field public static final String WRITE_DISTANCE = "android.permission.health.WRITE_DISTANCE";
200    field public static final String WRITE_ELEVATION_GAINED = "android.permission.health.WRITE_ELEVATION_GAINED";
201    field public static final String WRITE_EXERCISE = "android.permission.health.WRITE_EXERCISE";
202    field public static final String WRITE_EXERCISE_ROUTE = "android.permission.health.WRITE_EXERCISE_ROUTE";
203    field public static final String WRITE_FLOORS_CLIMBED = "android.permission.health.WRITE_FLOORS_CLIMBED";
204    field public static final String WRITE_HEART_RATE = "android.permission.health.WRITE_HEART_RATE";
205    field public static final String WRITE_HEART_RATE_VARIABILITY = "android.permission.health.WRITE_HEART_RATE_VARIABILITY";
206    field public static final String WRITE_HEIGHT = "android.permission.health.WRITE_HEIGHT";
207    field public static final String WRITE_HYDRATION = "android.permission.health.WRITE_HYDRATION";
208    field public static final String WRITE_INTERMENSTRUAL_BLEEDING = "android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING";
209    field public static final String WRITE_LEAN_BODY_MASS = "android.permission.health.WRITE_LEAN_BODY_MASS";
210    field @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public static final String WRITE_MEDICAL_DATA = "android.permission.health.WRITE_MEDICAL_DATA";
211    field public static final String WRITE_MENSTRUATION = "android.permission.health.WRITE_MENSTRUATION";
212    field @FlaggedApi("com.android.healthfitness.flags.mindfulness") public static final String WRITE_MINDFULNESS = "android.permission.health.WRITE_MINDFULNESS";
213    field public static final String WRITE_NUTRITION = "android.permission.health.WRITE_NUTRITION";
214    field public static final String WRITE_OVULATION_TEST = "android.permission.health.WRITE_OVULATION_TEST";
215    field public static final String WRITE_OXYGEN_SATURATION = "android.permission.health.WRITE_OXYGEN_SATURATION";
216    field @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final String WRITE_PLANNED_EXERCISE = "android.permission.health.WRITE_PLANNED_EXERCISE";
217    field public static final String WRITE_POWER = "android.permission.health.WRITE_POWER";
218    field public static final String WRITE_RESPIRATORY_RATE = "android.permission.health.WRITE_RESPIRATORY_RATE";
219    field public static final String WRITE_RESTING_HEART_RATE = "android.permission.health.WRITE_RESTING_HEART_RATE";
220    field public static final String WRITE_SEXUAL_ACTIVITY = "android.permission.health.WRITE_SEXUAL_ACTIVITY";
221    field @FlaggedApi("com.android.healthconnect.flags.skin_temperature") public static final String WRITE_SKIN_TEMPERATURE = "android.permission.health.WRITE_SKIN_TEMPERATURE";
222    field public static final String WRITE_SLEEP = "android.permission.health.WRITE_SLEEP";
223    field public static final String WRITE_SPEED = "android.permission.health.WRITE_SPEED";
224    field public static final String WRITE_STEPS = "android.permission.health.WRITE_STEPS";
225    field public static final String WRITE_TOTAL_CALORIES_BURNED = "android.permission.health.WRITE_TOTAL_CALORIES_BURNED";
226    field public static final String WRITE_VO2_MAX = "android.permission.health.WRITE_VO2_MAX";
227    field public static final String WRITE_WEIGHT = "android.permission.health.WRITE_WEIGHT";
228    field public static final String WRITE_WHEELCHAIR_PUSHES = "android.permission.health.WRITE_WHEELCHAIR_PUSHES";
229  }
230
231  public class InsertRecordsResponse {
232    method @NonNull public java.util.List<android.health.connect.datatypes.Record> getRecords();
233  }
234
235  public final class LocalTimeRangeFilter implements android.health.connect.TimeRangeFilter {
236    method @Nullable public java.time.LocalDateTime getEndTime();
237    method @Nullable public java.time.LocalDateTime getStartTime();
238    method @NonNull public boolean isBounded();
239  }
240
241  public static final class LocalTimeRangeFilter.Builder {
242    ctor public LocalTimeRangeFilter.Builder();
243    method @NonNull public android.health.connect.LocalTimeRangeFilter build();
244    method @NonNull public android.health.connect.LocalTimeRangeFilter.Builder setEndTime(@Nullable java.time.LocalDateTime);
245    method @NonNull public android.health.connect.LocalTimeRangeFilter.Builder setStartTime(@Nullable java.time.LocalDateTime);
246  }
247
248  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class MedicalResourceId implements android.os.Parcelable {
249    ctor public MedicalResourceId(@NonNull String, int, @NonNull String);
250    method public int describeContents();
251    method @NonNull public static android.health.connect.MedicalResourceId fromFhirReference(@NonNull String, @NonNull String);
252    method @NonNull public String getDataSourceId();
253    method @NonNull public String getFhirResourceId();
254    method public int getFhirResourceType();
255    method public void writeToParcel(@NonNull android.os.Parcel, int);
256    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.MedicalResourceId> CREATOR;
257  }
258
259  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class ReadMedicalResourcesInitialRequest extends android.health.connect.ReadMedicalResourcesRequest {
260    method @NonNull public java.util.Set<java.lang.String> getDataSourceIds();
261    method public int getMedicalResourceType();
262  }
263
264  public static final class ReadMedicalResourcesInitialRequest.Builder {
265    ctor public ReadMedicalResourcesInitialRequest.Builder(int);
266    ctor public ReadMedicalResourcesInitialRequest.Builder(@NonNull android.health.connect.ReadMedicalResourcesInitialRequest.Builder);
267    ctor public ReadMedicalResourcesInitialRequest.Builder(@NonNull android.health.connect.ReadMedicalResourcesInitialRequest);
268    method @NonNull public android.health.connect.ReadMedicalResourcesInitialRequest.Builder addDataSourceId(@NonNull String);
269    method @NonNull public android.health.connect.ReadMedicalResourcesInitialRequest.Builder addDataSourceIds(@NonNull java.util.Set<java.lang.String>);
270    method @NonNull public android.health.connect.ReadMedicalResourcesInitialRequest build();
271    method @NonNull public android.health.connect.ReadMedicalResourcesInitialRequest.Builder clearDataSourceIds();
272    method @NonNull public android.health.connect.ReadMedicalResourcesInitialRequest.Builder setMedicalResourceType(int);
273    method @NonNull public android.health.connect.ReadMedicalResourcesInitialRequest.Builder setPageSize(@IntRange(from=android.health.connect.Constants.MINIMUM_PAGE_SIZE, to=android.health.connect.Constants.MAXIMUM_PAGE_SIZE) int);
274  }
275
276  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class ReadMedicalResourcesPageRequest extends android.health.connect.ReadMedicalResourcesRequest {
277    method @NonNull public String getPageToken();
278  }
279
280  public static final class ReadMedicalResourcesPageRequest.Builder {
281    ctor public ReadMedicalResourcesPageRequest.Builder(@NonNull String);
282    ctor public ReadMedicalResourcesPageRequest.Builder(@NonNull android.health.connect.ReadMedicalResourcesPageRequest.Builder);
283    ctor public ReadMedicalResourcesPageRequest.Builder(@NonNull android.health.connect.ReadMedicalResourcesPageRequest);
284    method @NonNull public android.health.connect.ReadMedicalResourcesPageRequest build();
285    method @NonNull public android.health.connect.ReadMedicalResourcesPageRequest.Builder setPageSize(@IntRange(from=android.health.connect.Constants.MINIMUM_PAGE_SIZE, to=android.health.connect.Constants.MAXIMUM_PAGE_SIZE) int);
286    method @NonNull public android.health.connect.ReadMedicalResourcesPageRequest.Builder setPageToken(@NonNull String);
287  }
288
289  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public abstract class ReadMedicalResourcesRequest {
290    method @IntRange(from=android.health.connect.Constants.MINIMUM_PAGE_SIZE, to=android.health.connect.Constants.MAXIMUM_PAGE_SIZE) public int getPageSize();
291  }
292
293  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class ReadMedicalResourcesResponse implements android.os.Parcelable {
294    ctor public ReadMedicalResourcesResponse(@NonNull java.util.List<android.health.connect.datatypes.MedicalResource>, @Nullable String, int);
295    method public int describeContents();
296    method @NonNull public java.util.List<android.health.connect.datatypes.MedicalResource> getMedicalResources();
297    method @Nullable public String getNextPageToken();
298    method public int getRemainingCount();
299    method public void writeToParcel(@NonNull android.os.Parcel, int);
300    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.ReadMedicalResourcesResponse> CREATOR;
301  }
302
303  public abstract class ReadRecordsRequest<T extends android.health.connect.datatypes.Record> {
304    method @NonNull public Class<T> getRecordType();
305  }
306
307  public final class ReadRecordsRequestUsingFilters<T extends android.health.connect.datatypes.Record> extends android.health.connect.ReadRecordsRequest<T> {
308    method @NonNull public java.util.Set<android.health.connect.datatypes.DataOrigin> getDataOrigins();
309    method @IntRange(from=1, to=5000) public int getPageSize();
310    method public long getPageToken();
311    method @Nullable public android.health.connect.TimeRangeFilter getTimeRangeFilter();
312    method public boolean isAscending();
313  }
314
315  public static final class ReadRecordsRequestUsingFilters.Builder<T extends android.health.connect.datatypes.Record> {
316    ctor public ReadRecordsRequestUsingFilters.Builder(@NonNull Class<T>);
317    method @NonNull public android.health.connect.ReadRecordsRequestUsingFilters.Builder<T> addDataOrigins(@NonNull android.health.connect.datatypes.DataOrigin);
318    method @NonNull public android.health.connect.ReadRecordsRequestUsingFilters<T> build();
319    method @NonNull public android.health.connect.ReadRecordsRequestUsingFilters.Builder<T> setAscending(boolean);
320    method @NonNull public android.health.connect.ReadRecordsRequestUsingFilters.Builder<T> setPageSize(@IntRange(from=1, to=5000) int);
321    method @NonNull public android.health.connect.ReadRecordsRequestUsingFilters.Builder<T> setPageToken(long);
322    method @NonNull public android.health.connect.ReadRecordsRequestUsingFilters.Builder<T> setTimeRangeFilter(@Nullable android.health.connect.TimeRangeFilter);
323  }
324
325  public final class ReadRecordsRequestUsingIds<T extends android.health.connect.datatypes.Record> extends android.health.connect.ReadRecordsRequest<T> {
326    method @NonNull public java.util.List<android.health.connect.RecordIdFilter> getRecordIdFilters();
327  }
328
329  public static final class ReadRecordsRequestUsingIds.Builder<T extends android.health.connect.datatypes.Record> {
330    ctor public ReadRecordsRequestUsingIds.Builder(@NonNull Class<T>);
331    method @NonNull public android.health.connect.ReadRecordsRequestUsingIds.Builder<T> addClientRecordId(@NonNull String);
332    method @NonNull public android.health.connect.ReadRecordsRequestUsingIds.Builder<T> addId(@NonNull String);
333    method @NonNull public android.health.connect.ReadRecordsRequestUsingIds<T> build();
334  }
335
336  public class ReadRecordsResponse<T extends android.health.connect.datatypes.Record> {
337    method public long getNextPageToken();
338    method @NonNull public java.util.List<T> getRecords();
339  }
340
341  public class RecordIdFilter {
342    method @NonNull public static android.health.connect.RecordIdFilter fromClientRecordId(@NonNull Class<? extends android.health.connect.datatypes.Record>, @NonNull String);
343    method @NonNull public static android.health.connect.RecordIdFilter fromId(@NonNull Class<? extends android.health.connect.datatypes.Record>, @NonNull String);
344    method @Nullable public String getClientRecordId();
345    method @Nullable public String getId();
346    method @NonNull public Class<? extends android.health.connect.datatypes.Record> getRecordType();
347  }
348
349  public final class TimeInstantRangeFilter implements android.health.connect.TimeRangeFilter {
350    method @Nullable public java.time.Instant getEndTime();
351    method @Nullable public java.time.Instant getStartTime();
352    method @NonNull public boolean isBounded();
353  }
354
355  public static final class TimeInstantRangeFilter.Builder {
356    ctor public TimeInstantRangeFilter.Builder();
357    method @NonNull public android.health.connect.TimeInstantRangeFilter build();
358    method @NonNull public android.health.connect.TimeInstantRangeFilter.Builder setEndTime(@Nullable java.time.Instant);
359    method @NonNull public android.health.connect.TimeInstantRangeFilter.Builder setStartTime(@Nullable java.time.Instant);
360  }
361
362  public interface TimeRangeFilter {
363  }
364
365  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class UpsertMedicalResourceRequest implements android.os.Parcelable {
366    method public int describeContents();
367    method @NonNull public String getData();
368    method @NonNull public String getDataSourceId();
369    method @NonNull public android.health.connect.datatypes.FhirVersion getFhirVersion();
370    method public void writeToParcel(@NonNull android.os.Parcel, int);
371    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.UpsertMedicalResourceRequest> CREATOR;
372  }
373
374  public static final class UpsertMedicalResourceRequest.Builder {
375    ctor public UpsertMedicalResourceRequest.Builder(@NonNull String, @NonNull android.health.connect.datatypes.FhirVersion, @NonNull String);
376    ctor public UpsertMedicalResourceRequest.Builder(@NonNull android.health.connect.UpsertMedicalResourceRequest.Builder);
377    ctor public UpsertMedicalResourceRequest.Builder(@NonNull android.health.connect.UpsertMedicalResourceRequest);
378    method @NonNull public android.health.connect.UpsertMedicalResourceRequest build();
379    method @NonNull public android.health.connect.UpsertMedicalResourceRequest.Builder setData(@NonNull String);
380    method @NonNull public android.health.connect.UpsertMedicalResourceRequest.Builder setDataSourceId(@NonNull String);
381    method @NonNull public android.health.connect.UpsertMedicalResourceRequest.Builder setFhirVersion(@NonNull android.health.connect.datatypes.FhirVersion);
382  }
383
384}
385
386package android.health.connect.changelog {
387
388  public final class ChangeLogTokenRequest implements android.os.Parcelable {
389    method public int describeContents();
390    method @NonNull public java.util.Set<android.health.connect.datatypes.DataOrigin> getDataOriginFilters();
391    method @NonNull public java.util.Set<java.lang.Class<? extends android.health.connect.datatypes.Record>> getRecordTypes();
392    method public void writeToParcel(@NonNull android.os.Parcel, int);
393    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.changelog.ChangeLogTokenRequest> CREATOR;
394  }
395
396  public static final class ChangeLogTokenRequest.Builder {
397    ctor public ChangeLogTokenRequest.Builder();
398    method @NonNull public android.health.connect.changelog.ChangeLogTokenRequest.Builder addDataOriginFilter(@NonNull android.health.connect.datatypes.DataOrigin);
399    method @NonNull public android.health.connect.changelog.ChangeLogTokenRequest.Builder addRecordType(@NonNull Class<? extends android.health.connect.datatypes.Record>);
400    method @NonNull public android.health.connect.changelog.ChangeLogTokenRequest build();
401  }
402
403  public final class ChangeLogTokenResponse implements android.os.Parcelable {
404    method public int describeContents();
405    method @NonNull public String getToken();
406    method public void writeToParcel(@NonNull android.os.Parcel, int);
407    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.changelog.ChangeLogTokenResponse> CREATOR;
408  }
409
410  public final class ChangeLogsRequest implements android.os.Parcelable {
411    method public int describeContents();
412    method @IntRange(from=1, to=5000) public int getPageSize();
413    method @NonNull public String getToken();
414    method public void writeToParcel(@NonNull android.os.Parcel, int);
415    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.changelog.ChangeLogsRequest> CREATOR;
416  }
417
418  public static final class ChangeLogsRequest.Builder {
419    ctor public ChangeLogsRequest.Builder(@NonNull String);
420    method @NonNull public android.health.connect.changelog.ChangeLogsRequest build();
421    method @NonNull public android.health.connect.changelog.ChangeLogsRequest.Builder setPageSize(@IntRange(from=1, to=5000) int);
422  }
423
424  public final class ChangeLogsResponse implements android.os.Parcelable {
425    method public int describeContents();
426    method @NonNull public java.util.List<android.health.connect.changelog.ChangeLogsResponse.DeletedLog> getDeletedLogs();
427    method @NonNull public String getNextChangesToken();
428    method @NonNull public java.util.List<android.health.connect.datatypes.Record> getUpsertedRecords();
429    method public boolean hasMorePages();
430    method public void writeToParcel(@NonNull android.os.Parcel, int);
431    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.changelog.ChangeLogsResponse> CREATOR;
432  }
433
434  public static final class ChangeLogsResponse.DeletedLog {
435    ctor public ChangeLogsResponse.DeletedLog(@NonNull String, long);
436    method @NonNull public String getDeletedRecordId();
437    method @NonNull public java.time.Instant getDeletedTime();
438  }
439
440}
441
442package android.health.connect.datatypes {
443
444  public final class ActiveCaloriesBurnedRecord extends android.health.connect.datatypes.IntervalRecord {
445    method @NonNull public android.health.connect.datatypes.units.Energy getEnergy();
446    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Energy> ACTIVE_CALORIES_TOTAL;
447  }
448
449  public static final class ActiveCaloriesBurnedRecord.Builder {
450    ctor public ActiveCaloriesBurnedRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Energy);
451    method @NonNull public android.health.connect.datatypes.ActiveCaloriesBurnedRecord build();
452    method @NonNull public android.health.connect.datatypes.ActiveCaloriesBurnedRecord.Builder clearEndZoneOffset();
453    method @NonNull public android.health.connect.datatypes.ActiveCaloriesBurnedRecord.Builder clearStartZoneOffset();
454    method @NonNull public android.health.connect.datatypes.ActiveCaloriesBurnedRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
455    method @NonNull public android.health.connect.datatypes.ActiveCaloriesBurnedRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
456  }
457
458  @FlaggedApi("com.android.healthfitness.flags.activity_intensity") public final class ActivityIntensityRecord extends android.health.connect.datatypes.IntervalRecord {
459    method public int getActivityIntensityType();
460    field public static final int ACTIVITY_INTENSITY_TYPE_MODERATE = 0; // 0x0
461    field public static final int ACTIVITY_INTENSITY_TYPE_VIGOROUS = 1; // 0x1
462    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.time.Duration> DURATION_TOTAL;
463    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> INTENSITY_MINUTES_TOTAL;
464    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.time.Duration> MODERATE_DURATION_TOTAL;
465    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.time.Duration> VIGOROUS_DURATION_TOTAL;
466  }
467
468  public static final class ActivityIntensityRecord.Builder {
469    ctor public ActivityIntensityRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, int);
470    method @NonNull public android.health.connect.datatypes.ActivityIntensityRecord build();
471    method @NonNull public android.health.connect.datatypes.ActivityIntensityRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
472    method @NonNull public android.health.connect.datatypes.ActivityIntensityRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
473  }
474
475  public final class AggregationType<T> {
476  }
477
478  public final class AppInfo {
479    method @Nullable public android.graphics.Bitmap getIcon();
480    method @Nullable public String getName();
481    method @NonNull public String getPackageName();
482  }
483
484  public final class BasalBodyTemperatureRecord extends android.health.connect.datatypes.InstantRecord {
485    method public int getMeasurementLocation();
486    method @NonNull public android.health.connect.datatypes.units.Temperature getTemperature();
487  }
488
489  public static final class BasalBodyTemperatureRecord.Builder {
490    ctor public BasalBodyTemperatureRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int, @NonNull android.health.connect.datatypes.units.Temperature);
491    method @NonNull public android.health.connect.datatypes.BasalBodyTemperatureRecord build();
492    method @NonNull public android.health.connect.datatypes.BasalBodyTemperatureRecord.Builder clearZoneOffset();
493    method @NonNull public android.health.connect.datatypes.BasalBodyTemperatureRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
494  }
495
496  public final class BasalMetabolicRateRecord extends android.health.connect.datatypes.InstantRecord {
497    method @NonNull public android.health.connect.datatypes.units.Power getBasalMetabolicRate();
498    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Energy> BASAL_CALORIES_TOTAL;
499  }
500
501  public static final class BasalMetabolicRateRecord.Builder {
502    ctor public BasalMetabolicRateRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Power);
503    method @NonNull public android.health.connect.datatypes.BasalMetabolicRateRecord build();
504    method @NonNull public android.health.connect.datatypes.BasalMetabolicRateRecord.Builder clearZoneOffset();
505    method @NonNull public android.health.connect.datatypes.BasalMetabolicRateRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
506  }
507
508  public final class BloodGlucoseRecord extends android.health.connect.datatypes.InstantRecord {
509    method @NonNull public android.health.connect.datatypes.units.BloodGlucose getLevel();
510    method public int getMealType();
511    method public int getRelationToMeal();
512    method public int getSpecimenSource();
513  }
514
515  public static final class BloodGlucoseRecord.Builder {
516    ctor public BloodGlucoseRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int, @NonNull android.health.connect.datatypes.units.BloodGlucose, int, int);
517    method @NonNull public android.health.connect.datatypes.BloodGlucoseRecord build();
518    method @NonNull public android.health.connect.datatypes.BloodGlucoseRecord.Builder clearZoneOffset();
519    method @NonNull public android.health.connect.datatypes.BloodGlucoseRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
520  }
521
522  public static final class BloodGlucoseRecord.RelationToMealType {
523    field public static final int RELATION_TO_MEAL_AFTER_MEAL = 4; // 0x4
524    field public static final int RELATION_TO_MEAL_BEFORE_MEAL = 3; // 0x3
525    field public static final int RELATION_TO_MEAL_FASTING = 2; // 0x2
526    field public static final int RELATION_TO_MEAL_GENERAL = 1; // 0x1
527    field public static final int RELATION_TO_MEAL_UNKNOWN = 0; // 0x0
528  }
529
530  public static final class BloodGlucoseRecord.SpecimenSource {
531    field public static final int SPECIMEN_SOURCE_CAPILLARY_BLOOD = 2; // 0x2
532    field public static final int SPECIMEN_SOURCE_INTERSTITIAL_FLUID = 1; // 0x1
533    field public static final int SPECIMEN_SOURCE_PLASMA = 3; // 0x3
534    field public static final int SPECIMEN_SOURCE_SERUM = 4; // 0x4
535    field public static final int SPECIMEN_SOURCE_TEARS = 5; // 0x5
536    field public static final int SPECIMEN_SOURCE_UNKNOWN = 0; // 0x0
537    field public static final int SPECIMEN_SOURCE_WHOLE_BLOOD = 6; // 0x6
538  }
539
540  public final class BloodPressureRecord extends android.health.connect.datatypes.InstantRecord {
541    method public int getBodyPosition();
542    method @NonNull public android.health.connect.datatypes.units.Pressure getDiastolic();
543    method public int getMeasurementLocation();
544    method @NonNull public android.health.connect.datatypes.units.Pressure getSystolic();
545    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Pressure> DIASTOLIC_AVG;
546    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Pressure> DIASTOLIC_MAX;
547    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Pressure> DIASTOLIC_MIN;
548    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Pressure> SYSTOLIC_AVG;
549    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Pressure> SYSTOLIC_MAX;
550    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Pressure> SYSTOLIC_MIN;
551  }
552
553  public static final class BloodPressureRecord.BloodPressureMeasurementLocation {
554    field public static final int BLOOD_PRESSURE_MEASUREMENT_LOCATION_LEFT_UPPER_ARM = 3; // 0x3
555    field public static final int BLOOD_PRESSURE_MEASUREMENT_LOCATION_LEFT_WRIST = 1; // 0x1
556    field public static final int BLOOD_PRESSURE_MEASUREMENT_LOCATION_RIGHT_UPPER_ARM = 4; // 0x4
557    field public static final int BLOOD_PRESSURE_MEASUREMENT_LOCATION_RIGHT_WRIST = 2; // 0x2
558    field public static final int BLOOD_PRESSURE_MEASUREMENT_LOCATION_UNKNOWN = 0; // 0x0
559  }
560
561  public static final class BloodPressureRecord.BodyPosition {
562    field public static final int BODY_POSITION_LYING_DOWN = 3; // 0x3
563    field public static final int BODY_POSITION_RECLINING = 4; // 0x4
564    field public static final int BODY_POSITION_SITTING_DOWN = 2; // 0x2
565    field public static final int BODY_POSITION_STANDING_UP = 1; // 0x1
566    field public static final int BODY_POSITION_UNKNOWN = 0; // 0x0
567  }
568
569  public static final class BloodPressureRecord.Builder {
570    ctor public BloodPressureRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int, @NonNull android.health.connect.datatypes.units.Pressure, @NonNull android.health.connect.datatypes.units.Pressure, int);
571    method @NonNull public android.health.connect.datatypes.BloodPressureRecord build();
572    method @NonNull public android.health.connect.datatypes.BloodPressureRecord.Builder clearZoneOffset();
573    method @NonNull public android.health.connect.datatypes.BloodPressureRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
574  }
575
576  public final class BodyFatRecord extends android.health.connect.datatypes.InstantRecord {
577    method @NonNull public android.health.connect.datatypes.units.Percentage getPercentage();
578  }
579
580  public static final class BodyFatRecord.Builder {
581    ctor public BodyFatRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Percentage);
582    method @NonNull public android.health.connect.datatypes.BodyFatRecord build();
583    method @NonNull public android.health.connect.datatypes.BodyFatRecord.Builder clearZoneOffset();
584    method @NonNull public android.health.connect.datatypes.BodyFatRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
585  }
586
587  public final class BodyTemperatureMeasurementLocation {
588    field public static final int MEASUREMENT_LOCATION_ARMPIT = 1; // 0x1
589    field public static final int MEASUREMENT_LOCATION_EAR = 8; // 0x8
590    field public static final int MEASUREMENT_LOCATION_FINGER = 2; // 0x2
591    field public static final int MEASUREMENT_LOCATION_FOREHEAD = 3; // 0x3
592    field public static final int MEASUREMENT_LOCATION_MOUTH = 4; // 0x4
593    field public static final int MEASUREMENT_LOCATION_RECTUM = 5; // 0x5
594    field public static final int MEASUREMENT_LOCATION_TEMPORAL_ARTERY = 6; // 0x6
595    field public static final int MEASUREMENT_LOCATION_TOE = 7; // 0x7
596    field public static final int MEASUREMENT_LOCATION_UNKNOWN = 0; // 0x0
597    field public static final int MEASUREMENT_LOCATION_VAGINA = 10; // 0xa
598    field public static final int MEASUREMENT_LOCATION_WRIST = 9; // 0x9
599  }
600
601  public final class BodyTemperatureRecord extends android.health.connect.datatypes.InstantRecord {
602    method public int getMeasurementLocation();
603    method @NonNull public android.health.connect.datatypes.units.Temperature getTemperature();
604  }
605
606  public static final class BodyTemperatureRecord.Builder {
607    ctor public BodyTemperatureRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int, @NonNull android.health.connect.datatypes.units.Temperature);
608    method @NonNull public android.health.connect.datatypes.BodyTemperatureRecord build();
609    method @NonNull public android.health.connect.datatypes.BodyTemperatureRecord.Builder clearZoneOffset();
610    method @NonNull public android.health.connect.datatypes.BodyTemperatureRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
611  }
612
613  public final class BodyWaterMassRecord extends android.health.connect.datatypes.InstantRecord {
614    method @NonNull public android.health.connect.datatypes.units.Mass getBodyWaterMass();
615  }
616
617  public static final class BodyWaterMassRecord.Builder {
618    ctor public BodyWaterMassRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Mass);
619    method @NonNull public android.health.connect.datatypes.BodyWaterMassRecord build();
620    method @NonNull public android.health.connect.datatypes.BodyWaterMassRecord.Builder clearZoneOffset();
621    method @NonNull public android.health.connect.datatypes.BodyWaterMassRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
622  }
623
624  public final class BoneMassRecord extends android.health.connect.datatypes.InstantRecord {
625    method @NonNull public android.health.connect.datatypes.units.Mass getMass();
626  }
627
628  public static final class BoneMassRecord.Builder {
629    ctor public BoneMassRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Mass);
630    method @NonNull public android.health.connect.datatypes.BoneMassRecord build();
631    method @NonNull public android.health.connect.datatypes.BoneMassRecord.Builder clearZoneOffset();
632    method @NonNull public android.health.connect.datatypes.BoneMassRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
633  }
634
635  public final class CervicalMucusRecord extends android.health.connect.datatypes.InstantRecord {
636    method public int getAppearance();
637    method public int getSensation();
638  }
639
640  public static final class CervicalMucusRecord.Builder {
641    ctor public CervicalMucusRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int, int);
642    method @NonNull public android.health.connect.datatypes.CervicalMucusRecord build();
643    method @NonNull public android.health.connect.datatypes.CervicalMucusRecord.Builder clearZoneOffset();
644    method @NonNull public android.health.connect.datatypes.CervicalMucusRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
645  }
646
647  public static final class CervicalMucusRecord.CervicalMucusAppearance {
648    field public static final int APPEARANCE_CREAMY = 3; // 0x3
649    field public static final int APPEARANCE_DRY = 1; // 0x1
650    field public static final int APPEARANCE_EGG_WHITE = 5; // 0x5
651    field public static final int APPEARANCE_STICKY = 2; // 0x2
652    field public static final int APPEARANCE_UNKNOWN = 0; // 0x0
653    field public static final int APPEARANCE_UNUSUAL = 6; // 0x6
654    field public static final int APPEARANCE_WATERY = 4; // 0x4
655  }
656
657  public static final class CervicalMucusRecord.CervicalMucusSensation {
658    field public static final int SENSATION_HEAVY = 3; // 0x3
659    field public static final int SENSATION_LIGHT = 1; // 0x1
660    field public static final int SENSATION_MEDIUM = 2; // 0x2
661    field public static final int SENSATION_UNKNOWN = 0; // 0x0
662  }
663
664  public final class CyclingPedalingCadenceRecord extends android.health.connect.datatypes.IntervalRecord {
665    method @NonNull public java.util.List<android.health.connect.datatypes.CyclingPedalingCadenceRecord.CyclingPedalingCadenceRecordSample> getSamples();
666    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Double> RPM_AVG;
667    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Double> RPM_MAX;
668    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Double> RPM_MIN;
669  }
670
671  public static final class CyclingPedalingCadenceRecord.Builder {
672    ctor public CyclingPedalingCadenceRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull java.util.List<android.health.connect.datatypes.CyclingPedalingCadenceRecord.CyclingPedalingCadenceRecordSample>);
673    method @NonNull public android.health.connect.datatypes.CyclingPedalingCadenceRecord build();
674    method @NonNull public android.health.connect.datatypes.CyclingPedalingCadenceRecord.Builder clearEndZoneOffset();
675    method @NonNull public android.health.connect.datatypes.CyclingPedalingCadenceRecord.Builder clearStartZoneOffset();
676    method @NonNull public android.health.connect.datatypes.CyclingPedalingCadenceRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
677    method @NonNull public android.health.connect.datatypes.CyclingPedalingCadenceRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
678  }
679
680  public static final class CyclingPedalingCadenceRecord.CyclingPedalingCadenceRecordSample {
681    ctor public CyclingPedalingCadenceRecord.CyclingPedalingCadenceRecordSample(double, @NonNull java.time.Instant);
682    method public double getRevolutionsPerMinute();
683    method @NonNull public java.time.Instant getTime();
684  }
685
686  public final class DataOrigin {
687    method @NonNull public String getPackageName();
688  }
689
690  public static final class DataOrigin.Builder {
691    ctor public DataOrigin.Builder();
692    method @NonNull public android.health.connect.datatypes.DataOrigin build();
693    method @NonNull public android.health.connect.datatypes.DataOrigin.Builder setPackageName(@NonNull String);
694  }
695
696  public final class Device {
697    method @Nullable public String getManufacturer();
698    method @Nullable public String getModel();
699    method public int getType();
700    field public static final int DEVICE_TYPE_CHEST_STRAP = 7; // 0x7
701    field public static final int DEVICE_TYPE_FITNESS_BAND = 6; // 0x6
702    field public static final int DEVICE_TYPE_HEAD_MOUNTED = 5; // 0x5
703    field public static final int DEVICE_TYPE_PHONE = 2; // 0x2
704    field public static final int DEVICE_TYPE_RING = 4; // 0x4
705    field public static final int DEVICE_TYPE_SCALE = 3; // 0x3
706    field public static final int DEVICE_TYPE_SMART_DISPLAY = 8; // 0x8
707    field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0
708    field public static final int DEVICE_TYPE_WATCH = 1; // 0x1
709  }
710
711  public static final class Device.Builder {
712    ctor public Device.Builder();
713    method @NonNull public android.health.connect.datatypes.Device build();
714    method @NonNull public android.health.connect.datatypes.Device.Builder setManufacturer(@Nullable String);
715    method @NonNull public android.health.connect.datatypes.Device.Builder setModel(@Nullable String);
716    method @NonNull public android.health.connect.datatypes.Device.Builder setType(int);
717  }
718
719  public final class DistanceRecord extends android.health.connect.datatypes.IntervalRecord {
720    method @NonNull public android.health.connect.datatypes.units.Length getDistance();
721    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Length> DISTANCE_TOTAL;
722  }
723
724  public static final class DistanceRecord.Builder {
725    ctor public DistanceRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Length);
726    method @NonNull public android.health.connect.datatypes.DistanceRecord build();
727    method @NonNull public android.health.connect.datatypes.DistanceRecord.Builder clearEndZoneOffset();
728    method @NonNull public android.health.connect.datatypes.DistanceRecord.Builder clearStartZoneOffset();
729    method @NonNull public android.health.connect.datatypes.DistanceRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
730    method @NonNull public android.health.connect.datatypes.DistanceRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
731  }
732
733  public final class ElevationGainedRecord extends android.health.connect.datatypes.IntervalRecord {
734    method @NonNull public android.health.connect.datatypes.units.Length getElevation();
735    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Length> ELEVATION_GAINED_TOTAL;
736  }
737
738  public static final class ElevationGainedRecord.Builder {
739    ctor public ElevationGainedRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Length);
740    method @NonNull public android.health.connect.datatypes.ElevationGainedRecord build();
741    method @NonNull public android.health.connect.datatypes.ElevationGainedRecord.Builder clearEndZoneOffset();
742    method @NonNull public android.health.connect.datatypes.ElevationGainedRecord.Builder clearStartZoneOffset();
743    method @NonNull public android.health.connect.datatypes.ElevationGainedRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
744    method @NonNull public android.health.connect.datatypes.ElevationGainedRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
745  }
746
747  @FlaggedApi("com.android.healthconnect.flags.training_plans") public abstract class ExerciseCompletionGoal {
748  }
749
750  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.ActiveCaloriesBurnedGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
751    ctor public ExerciseCompletionGoal.ActiveCaloriesBurnedGoal(@NonNull android.health.connect.datatypes.units.Energy);
752    method @NonNull public android.health.connect.datatypes.units.Energy getActiveCalories();
753  }
754
755  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.DistanceGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
756    ctor public ExerciseCompletionGoal.DistanceGoal(@NonNull android.health.connect.datatypes.units.Length);
757    method @NonNull public android.health.connect.datatypes.units.Length getDistance();
758  }
759
760  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.DistanceWithVariableRestGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
761    ctor public ExerciseCompletionGoal.DistanceWithVariableRestGoal(@NonNull android.health.connect.datatypes.units.Length, @NonNull java.time.Duration);
762    method @NonNull public android.health.connect.datatypes.units.Length getDistance();
763    method @NonNull public java.time.Duration getDuration();
764  }
765
766  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.DurationGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
767    ctor public ExerciseCompletionGoal.DurationGoal(@NonNull java.time.Duration);
768    method @NonNull public java.time.Duration getDuration();
769  }
770
771  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.RepetitionsGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
772    ctor public ExerciseCompletionGoal.RepetitionsGoal(int);
773    method public int getRepetitions();
774  }
775
776  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.StepsGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
777    ctor public ExerciseCompletionGoal.StepsGoal(int);
778    method public int getSteps();
779  }
780
781  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.TotalCaloriesBurnedGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
782    ctor public ExerciseCompletionGoal.TotalCaloriesBurnedGoal(@NonNull android.health.connect.datatypes.units.Energy);
783    method @NonNull public android.health.connect.datatypes.units.Energy getTotalCalories();
784  }
785
786  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.UnknownGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
787    field @NonNull public static final android.health.connect.datatypes.ExerciseCompletionGoal.UnknownGoal INSTANCE;
788  }
789
790  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExerciseCompletionGoal.UnspecifiedGoal extends android.health.connect.datatypes.ExerciseCompletionGoal {
791    field @NonNull public static final android.health.connect.datatypes.ExerciseCompletionGoal.UnspecifiedGoal INSTANCE;
792  }
793
794  public final class ExerciseLap {
795    method @NonNull public java.time.Instant getEndTime();
796    method @Nullable public android.health.connect.datatypes.units.Length getLength();
797    method @NonNull public java.time.Instant getStartTime();
798  }
799
800  public static final class ExerciseLap.Builder {
801    ctor public ExerciseLap.Builder(@NonNull java.time.Instant, @NonNull java.time.Instant);
802    method @NonNull public android.health.connect.datatypes.ExerciseLap build();
803    method @NonNull public android.health.connect.datatypes.ExerciseLap.Builder setLength(@NonNull android.health.connect.datatypes.units.Length);
804  }
805
806  @FlaggedApi("com.android.healthconnect.flags.training_plans") public abstract class ExercisePerformanceGoal {
807  }
808
809  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.AmrapGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
810    field @NonNull public static final android.health.connect.datatypes.ExercisePerformanceGoal.AmrapGoal INSTANCE;
811  }
812
813  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.CadenceGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
814    ctor public ExercisePerformanceGoal.CadenceGoal(double, double);
815    method public double getMaxRpm();
816    method public double getMinRpm();
817  }
818
819  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.HeartRateGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
820    ctor public ExercisePerformanceGoal.HeartRateGoal(int, int);
821    method public int getMaxBpm();
822    method public int getMinBpm();
823  }
824
825  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.PowerGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
826    ctor public ExercisePerformanceGoal.PowerGoal(@NonNull android.health.connect.datatypes.units.Power, @NonNull android.health.connect.datatypes.units.Power);
827    method @NonNull public android.health.connect.datatypes.units.Power getMaxPower();
828    method @NonNull public android.health.connect.datatypes.units.Power getMinPower();
829  }
830
831  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.RateOfPerceivedExertionGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
832    ctor public ExercisePerformanceGoal.RateOfPerceivedExertionGoal(int);
833    method public int getRpe();
834  }
835
836  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.SpeedGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
837    ctor public ExercisePerformanceGoal.SpeedGoal(@NonNull android.health.connect.datatypes.units.Velocity, @NonNull android.health.connect.datatypes.units.Velocity);
838    method @NonNull public android.health.connect.datatypes.units.Velocity getMaxSpeed();
839    method @NonNull public android.health.connect.datatypes.units.Velocity getMinSpeed();
840  }
841
842  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.UnknownGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
843    field @NonNull public static final android.health.connect.datatypes.ExercisePerformanceGoal.UnknownGoal INSTANCE;
844  }
845
846  @FlaggedApi("com.android.healthconnect.flags.training_plans") public static final class ExercisePerformanceGoal.WeightGoal extends android.health.connect.datatypes.ExercisePerformanceGoal {
847    ctor public ExercisePerformanceGoal.WeightGoal(@NonNull android.health.connect.datatypes.units.Mass);
848    method @NonNull public android.health.connect.datatypes.units.Mass getMass();
849  }
850
851  public final class ExerciseRoute implements android.os.Parcelable {
852    ctor public ExerciseRoute(@NonNull java.util.List<android.health.connect.datatypes.ExerciseRoute.Location>);
853    method public int describeContents();
854    method @NonNull public java.util.List<android.health.connect.datatypes.ExerciseRoute.Location> getRouteLocations();
855    method public void writeToParcel(@NonNull android.os.Parcel, int);
856    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.datatypes.ExerciseRoute> CREATOR;
857  }
858
859  public static final class ExerciseRoute.Location implements android.os.Parcelable {
860    method public int describeContents();
861    method @Nullable public android.health.connect.datatypes.units.Length getAltitude();
862    method @Nullable public android.health.connect.datatypes.units.Length getHorizontalAccuracy();
863    method @FloatRange(from=-90.0, to=90.0) public double getLatitude();
864    method @FloatRange(from=-180.0, to=180.0) public double getLongitude();
865    method @NonNull public java.time.Instant getTime();
866    method @Nullable public android.health.connect.datatypes.units.Length getVerticalAccuracy();
867    method public void writeToParcel(@NonNull android.os.Parcel, int);
868    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.datatypes.ExerciseRoute.Location> CREATOR;
869  }
870
871  public static final class ExerciseRoute.Location.Builder {
872    ctor public ExerciseRoute.Location.Builder(@NonNull java.time.Instant, @FloatRange(from=-90.0, to=90.0) double, @FloatRange(from=-180.0, to=180.0) double);
873    method @NonNull public android.health.connect.datatypes.ExerciseRoute.Location build();
874    method @NonNull public android.health.connect.datatypes.ExerciseRoute.Location.Builder setAltitude(@NonNull android.health.connect.datatypes.units.Length);
875    method @NonNull public android.health.connect.datatypes.ExerciseRoute.Location.Builder setHorizontalAccuracy(@NonNull android.health.connect.datatypes.units.Length);
876    method @NonNull public android.health.connect.datatypes.ExerciseRoute.Location.Builder setVerticalAccuracy(@NonNull android.health.connect.datatypes.units.Length);
877  }
878
879  public final class ExerciseSegment {
880    method @NonNull public java.time.Instant getEndTime();
881    method @IntRange(from=0) public int getRepetitionsCount();
882    method public int getSegmentType();
883    method @NonNull public java.time.Instant getStartTime();
884  }
885
886  public static final class ExerciseSegment.Builder {
887    ctor public ExerciseSegment.Builder(@NonNull java.time.Instant, @NonNull java.time.Instant, int);
888    method @NonNull public android.health.connect.datatypes.ExerciseSegment build();
889    method @NonNull public android.health.connect.datatypes.ExerciseSegment.Builder setRepetitionsCount(@IntRange(from=0) int);
890  }
891
892  public final class ExerciseSegmentType {
893    field public static final int EXERCISE_SEGMENT_TYPE_ARM_CURL = 26; // 0x1a
894    field public static final int EXERCISE_SEGMENT_TYPE_BACK_EXTENSION = 27; // 0x1b
895    field public static final int EXERCISE_SEGMENT_TYPE_BALL_SLAM = 28; // 0x1c
896    field public static final int EXERCISE_SEGMENT_TYPE_BARBELL_SHOULDER_PRESS = 1; // 0x1
897    field public static final int EXERCISE_SEGMENT_TYPE_BENCH_PRESS = 29; // 0x1d
898    field public static final int EXERCISE_SEGMENT_TYPE_BENCH_SIT_UP = 2; // 0x2
899    field public static final int EXERCISE_SEGMENT_TYPE_BIKING = 3; // 0x3
900    field public static final int EXERCISE_SEGMENT_TYPE_BIKING_STATIONARY = 4; // 0x4
901    field public static final int EXERCISE_SEGMENT_TYPE_BURPEE = 30; // 0x1e
902    field public static final int EXERCISE_SEGMENT_TYPE_CRUNCH = 31; // 0x1f
903    field public static final int EXERCISE_SEGMENT_TYPE_DEADLIFT = 32; // 0x20
904    field public static final int EXERCISE_SEGMENT_TYPE_DOUBLE_ARM_TRICEPS_EXTENSION = 33; // 0x21
905    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_CURL_LEFT_ARM = 5; // 0x5
906    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_CURL_RIGHT_ARM = 6; // 0x6
907    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_FRONT_RAISE = 7; // 0x7
908    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_LATERAL_RAISE = 8; // 0x8
909    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_ROW = 34; // 0x22
910    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM = 9; // 0x9
911    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM = 10; // 0xa
912    field public static final int EXERCISE_SEGMENT_TYPE_DUMBBELL_TRICEPS_EXTENSION_TWO_ARM = 11; // 0xb
913    field public static final int EXERCISE_SEGMENT_TYPE_ELLIPTICAL = 12; // 0xc
914    field public static final int EXERCISE_SEGMENT_TYPE_FORWARD_TWIST = 13; // 0xd
915    field public static final int EXERCISE_SEGMENT_TYPE_FRONT_RAISE = 35; // 0x23
916    field public static final int EXERCISE_SEGMENT_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING = 62; // 0x3e
917    field public static final int EXERCISE_SEGMENT_TYPE_HIP_THRUST = 36; // 0x24
918    field public static final int EXERCISE_SEGMENT_TYPE_HULA_HOOP = 37; // 0x25
919    field public static final int EXERCISE_SEGMENT_TYPE_JUMPING_JACK = 38; // 0x26
920    field public static final int EXERCISE_SEGMENT_TYPE_JUMP_ROPE = 39; // 0x27
921    field public static final int EXERCISE_SEGMENT_TYPE_KETTLEBELL_SWING = 40; // 0x28
922    field public static final int EXERCISE_SEGMENT_TYPE_LATERAL_RAISE = 41; // 0x29
923    field public static final int EXERCISE_SEGMENT_TYPE_LAT_PULL_DOWN = 42; // 0x2a
924    field public static final int EXERCISE_SEGMENT_TYPE_LEG_CURL = 43; // 0x2b
925    field public static final int EXERCISE_SEGMENT_TYPE_LEG_EXTENSION = 44; // 0x2c
926    field public static final int EXERCISE_SEGMENT_TYPE_LEG_PRESS = 45; // 0x2d
927    field public static final int EXERCISE_SEGMENT_TYPE_LEG_RAISE = 46; // 0x2e
928    field public static final int EXERCISE_SEGMENT_TYPE_LUNGE = 47; // 0x2f
929    field public static final int EXERCISE_SEGMENT_TYPE_MOUNTAIN_CLIMBER = 48; // 0x30
930    field public static final int EXERCISE_SEGMENT_TYPE_OTHER_WORKOUT = 64; // 0x40
931    field public static final int EXERCISE_SEGMENT_TYPE_PAUSE = 67; // 0x43
932    field public static final int EXERCISE_SEGMENT_TYPE_PILATES = 14; // 0xe
933    field public static final int EXERCISE_SEGMENT_TYPE_PLANK = 49; // 0x31
934    field public static final int EXERCISE_SEGMENT_TYPE_PULL_UP = 50; // 0x32
935    field public static final int EXERCISE_SEGMENT_TYPE_PUNCH = 51; // 0x33
936    field public static final int EXERCISE_SEGMENT_TYPE_REST = 66; // 0x42
937    field public static final int EXERCISE_SEGMENT_TYPE_ROWING_MACHINE = 15; // 0xf
938    field public static final int EXERCISE_SEGMENT_TYPE_RUNNING = 16; // 0x10
939    field public static final int EXERCISE_SEGMENT_TYPE_RUNNING_TREADMILL = 17; // 0x11
940    field public static final int EXERCISE_SEGMENT_TYPE_SHOULDER_PRESS = 52; // 0x34
941    field public static final int EXERCISE_SEGMENT_TYPE_SINGLE_ARM_TRICEPS_EXTENSION = 53; // 0x35
942    field public static final int EXERCISE_SEGMENT_TYPE_SIT_UP = 54; // 0x36
943    field public static final int EXERCISE_SEGMENT_TYPE_SQUAT = 55; // 0x37
944    field public static final int EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING = 18; // 0x12
945    field public static final int EXERCISE_SEGMENT_TYPE_STAIR_CLIMBING_MACHINE = 19; // 0x13
946    field public static final int EXERCISE_SEGMENT_TYPE_STRETCHING = 20; // 0x14
947    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_BACKSTROKE = 57; // 0x39
948    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_BREASTSTROKE = 58; // 0x3a
949    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_BUTTERFLY = 59; // 0x3b
950    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_FREESTYLE = 56; // 0x38
951    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_MIXED = 60; // 0x3c
952    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_OPEN_WATER = 21; // 0x15
953    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_OTHER = 61; // 0x3d
954    field public static final int EXERCISE_SEGMENT_TYPE_SWIMMING_POOL = 22; // 0x16
955    field public static final int EXERCISE_SEGMENT_TYPE_UNKNOWN = 0; // 0x0
956    field public static final int EXERCISE_SEGMENT_TYPE_UPPER_TWIST = 23; // 0x17
957    field public static final int EXERCISE_SEGMENT_TYPE_WALKING = 24; // 0x18
958    field public static final int EXERCISE_SEGMENT_TYPE_WEIGHTLIFTING = 63; // 0x3f
959    field public static final int EXERCISE_SEGMENT_TYPE_WHEELCHAIR = 25; // 0x19
960    field public static final int EXERCISE_SEGMENT_TYPE_YOGA = 65; // 0x41
961  }
962
963  public final class ExerciseSessionRecord extends android.health.connect.datatypes.IntervalRecord {
964    method public int getExerciseType();
965    method @NonNull public java.util.List<android.health.connect.datatypes.ExerciseLap> getLaps();
966    method @Nullable public CharSequence getNotes();
967    method @FlaggedApi("com.android.healthconnect.flags.training_plans") @Nullable public String getPlannedExerciseSessionId();
968    method @Nullable public android.health.connect.datatypes.ExerciseRoute getRoute();
969    method @NonNull public java.util.List<android.health.connect.datatypes.ExerciseSegment> getSegments();
970    method @Nullable public CharSequence getTitle();
971    method @NonNull public boolean hasRoute();
972    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> EXERCISE_DURATION_TOTAL;
973  }
974
975  public static final class ExerciseSessionRecord.Builder {
976    ctor public ExerciseSessionRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, int);
977    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord build();
978    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder clearEndZoneOffset();
979    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder clearStartZoneOffset();
980    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
981    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setLaps(@NonNull java.util.List<android.health.connect.datatypes.ExerciseLap>);
982    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setNotes(@Nullable CharSequence);
983    method @FlaggedApi("com.android.healthconnect.flags.training_plans") @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setPlannedExerciseSessionId(@Nullable String);
984    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setRoute(@Nullable android.health.connect.datatypes.ExerciseRoute);
985    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setSegments(@NonNull java.util.List<android.health.connect.datatypes.ExerciseSegment>);
986    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
987    method @NonNull public android.health.connect.datatypes.ExerciseSessionRecord.Builder setTitle(@Nullable CharSequence);
988  }
989
990  public final class ExerciseSessionType {
991    field public static final int EXERCISE_SESSION_TYPE_BADMINTON = 1; // 0x1
992    field public static final int EXERCISE_SESSION_TYPE_BASEBALL = 2; // 0x2
993    field public static final int EXERCISE_SESSION_TYPE_BASKETBALL = 3; // 0x3
994    field public static final int EXERCISE_SESSION_TYPE_BIKING = 4; // 0x4
995    field public static final int EXERCISE_SESSION_TYPE_BIKING_STATIONARY = 5; // 0x5
996    field public static final int EXERCISE_SESSION_TYPE_BOOT_CAMP = 6; // 0x6
997    field public static final int EXERCISE_SESSION_TYPE_BOXING = 7; // 0x7
998    field public static final int EXERCISE_SESSION_TYPE_CALISTHENICS = 8; // 0x8
999    field public static final int EXERCISE_SESSION_TYPE_CRICKET = 9; // 0x9
1000    field public static final int EXERCISE_SESSION_TYPE_DANCING = 10; // 0xa
1001    field public static final int EXERCISE_SESSION_TYPE_ELLIPTICAL = 60; // 0x3c
1002    field public static final int EXERCISE_SESSION_TYPE_EXERCISE_CLASS = 11; // 0xb
1003    field public static final int EXERCISE_SESSION_TYPE_FENCING = 12; // 0xc
1004    field public static final int EXERCISE_SESSION_TYPE_FOOTBALL_AMERICAN = 13; // 0xd
1005    field public static final int EXERCISE_SESSION_TYPE_FOOTBALL_AUSTRALIAN = 14; // 0xe
1006    field public static final int EXERCISE_SESSION_TYPE_FRISBEE_DISC = 15; // 0xf
1007    field public static final int EXERCISE_SESSION_TYPE_GOLF = 16; // 0x10
1008    field @Deprecated @FlaggedApi("com.android.healthfitness.flags.deprecate_exercise_session_type_breathing") public static final int EXERCISE_SESSION_TYPE_GUIDED_BREATHING = 17; // 0x11
1009    field public static final int EXERCISE_SESSION_TYPE_GYMNASTICS = 18; // 0x12
1010    field public static final int EXERCISE_SESSION_TYPE_HANDBALL = 19; // 0x13
1011    field public static final int EXERCISE_SESSION_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING = 20; // 0x14
1012    field public static final int EXERCISE_SESSION_TYPE_HIKING = 21; // 0x15
1013    field public static final int EXERCISE_SESSION_TYPE_ICE_HOCKEY = 22; // 0x16
1014    field public static final int EXERCISE_SESSION_TYPE_ICE_SKATING = 23; // 0x17
1015    field public static final int EXERCISE_SESSION_TYPE_MARTIAL_ARTS = 24; // 0x18
1016    field public static final int EXERCISE_SESSION_TYPE_OTHER_WORKOUT = 58; // 0x3a
1017    field public static final int EXERCISE_SESSION_TYPE_PADDLING = 25; // 0x19
1018    field public static final int EXERCISE_SESSION_TYPE_PARAGLIDING = 26; // 0x1a
1019    field public static final int EXERCISE_SESSION_TYPE_PILATES = 27; // 0x1b
1020    field public static final int EXERCISE_SESSION_TYPE_RACQUETBALL = 28; // 0x1c
1021    field public static final int EXERCISE_SESSION_TYPE_ROCK_CLIMBING = 29; // 0x1d
1022    field public static final int EXERCISE_SESSION_TYPE_ROLLER_HOCKEY = 30; // 0x1e
1023    field public static final int EXERCISE_SESSION_TYPE_ROWING = 31; // 0x1f
1024    field public static final int EXERCISE_SESSION_TYPE_ROWING_MACHINE = 61; // 0x3d
1025    field public static final int EXERCISE_SESSION_TYPE_RUGBY = 32; // 0x20
1026    field public static final int EXERCISE_SESSION_TYPE_RUNNING = 33; // 0x21
1027    field public static final int EXERCISE_SESSION_TYPE_RUNNING_TREADMILL = 34; // 0x22
1028    field public static final int EXERCISE_SESSION_TYPE_SAILING = 35; // 0x23
1029    field public static final int EXERCISE_SESSION_TYPE_SCUBA_DIVING = 36; // 0x24
1030    field public static final int EXERCISE_SESSION_TYPE_SKATING = 37; // 0x25
1031    field public static final int EXERCISE_SESSION_TYPE_SKIING = 38; // 0x26
1032    field public static final int EXERCISE_SESSION_TYPE_SNOWBOARDING = 39; // 0x27
1033    field public static final int EXERCISE_SESSION_TYPE_SNOWSHOEING = 40; // 0x28
1034    field public static final int EXERCISE_SESSION_TYPE_SOCCER = 41; // 0x29
1035    field public static final int EXERCISE_SESSION_TYPE_SOFTBALL = 42; // 0x2a
1036    field public static final int EXERCISE_SESSION_TYPE_SQUASH = 43; // 0x2b
1037    field public static final int EXERCISE_SESSION_TYPE_STAIR_CLIMBING = 44; // 0x2c
1038    field public static final int EXERCISE_SESSION_TYPE_STAIR_CLIMBING_MACHINE = 59; // 0x3b
1039    field public static final int EXERCISE_SESSION_TYPE_STRENGTH_TRAINING = 45; // 0x2d
1040    field public static final int EXERCISE_SESSION_TYPE_STRETCHING = 46; // 0x2e
1041    field public static final int EXERCISE_SESSION_TYPE_SURFING = 47; // 0x2f
1042    field public static final int EXERCISE_SESSION_TYPE_SWIMMING_OPEN_WATER = 48; // 0x30
1043    field public static final int EXERCISE_SESSION_TYPE_SWIMMING_POOL = 49; // 0x31
1044    field public static final int EXERCISE_SESSION_TYPE_TABLE_TENNIS = 50; // 0x32
1045    field public static final int EXERCISE_SESSION_TYPE_TENNIS = 51; // 0x33
1046    field public static final int EXERCISE_SESSION_TYPE_UNKNOWN = 0; // 0x0
1047    field public static final int EXERCISE_SESSION_TYPE_VOLLEYBALL = 52; // 0x34
1048    field public static final int EXERCISE_SESSION_TYPE_WALKING = 53; // 0x35
1049    field public static final int EXERCISE_SESSION_TYPE_WATER_POLO = 54; // 0x36
1050    field public static final int EXERCISE_SESSION_TYPE_WEIGHTLIFTING = 55; // 0x37
1051    field public static final int EXERCISE_SESSION_TYPE_WHEELCHAIR = 56; // 0x38
1052    field public static final int EXERCISE_SESSION_TYPE_YOGA = 57; // 0x39
1053  }
1054
1055  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class FhirResource implements android.os.Parcelable {
1056    method public int describeContents();
1057    method @NonNull public String getData();
1058    method @NonNull public String getId();
1059    method public int getType();
1060    method public void writeToParcel(@NonNull android.os.Parcel, int);
1061    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.datatypes.FhirResource> CREATOR;
1062    field public static final int FHIR_RESOURCE_TYPE_ALLERGY_INTOLERANCE = 2; // 0x2
1063    field public static final int FHIR_RESOURCE_TYPE_CONDITION = 4; // 0x4
1064    field public static final int FHIR_RESOURCE_TYPE_ENCOUNTER = 12; // 0xc
1065    field public static final int FHIR_RESOURCE_TYPE_IMMUNIZATION = 1; // 0x1
1066    field public static final int FHIR_RESOURCE_TYPE_LOCATION = 13; // 0xd
1067    field public static final int FHIR_RESOURCE_TYPE_MEDICATION = 6; // 0x6
1068    field public static final int FHIR_RESOURCE_TYPE_MEDICATION_REQUEST = 7; // 0x7
1069    field public static final int FHIR_RESOURCE_TYPE_MEDICATION_STATEMENT = 8; // 0x8
1070    field public static final int FHIR_RESOURCE_TYPE_OBSERVATION = 3; // 0x3
1071    field public static final int FHIR_RESOURCE_TYPE_ORGANIZATION = 14; // 0xe
1072    field public static final int FHIR_RESOURCE_TYPE_PATIENT = 9; // 0x9
1073    field public static final int FHIR_RESOURCE_TYPE_PRACTITIONER = 10; // 0xa
1074    field public static final int FHIR_RESOURCE_TYPE_PRACTITIONER_ROLE = 11; // 0xb
1075    field public static final int FHIR_RESOURCE_TYPE_PROCEDURE = 5; // 0x5
1076  }
1077
1078  public static final class FhirResource.Builder {
1079    ctor public FhirResource.Builder(int, @NonNull String, @NonNull String);
1080    ctor public FhirResource.Builder(@NonNull android.health.connect.datatypes.FhirResource.Builder);
1081    ctor public FhirResource.Builder(@NonNull android.health.connect.datatypes.FhirResource);
1082    method @NonNull public android.health.connect.datatypes.FhirResource build();
1083    method @NonNull public android.health.connect.datatypes.FhirResource.Builder setData(@NonNull String);
1084    method @NonNull public android.health.connect.datatypes.FhirResource.Builder setId(@NonNull String);
1085    method @NonNull public android.health.connect.datatypes.FhirResource.Builder setType(int);
1086  }
1087
1088  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class FhirVersion implements android.os.Parcelable {
1089    method public int describeContents();
1090    method public int getMajor();
1091    method public int getMinor();
1092    method public int getPatch();
1093    method public boolean isSupportedFhirVersion();
1094    method @NonNull public static android.health.connect.datatypes.FhirVersion parseFhirVersion(@NonNull String);
1095    method public void writeToParcel(@NonNull android.os.Parcel, int);
1096    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.datatypes.FhirVersion> CREATOR;
1097  }
1098
1099  public final class FloorsClimbedRecord extends android.health.connect.datatypes.IntervalRecord {
1100    method @FloatRange(from=0.0f, to=1000000.0f) public double getFloors();
1101    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Double> FLOORS_CLIMBED_TOTAL;
1102  }
1103
1104  public static final class FloorsClimbedRecord.Builder {
1105    ctor public FloorsClimbedRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, double);
1106    method @NonNull public android.health.connect.datatypes.FloorsClimbedRecord build();
1107    method @NonNull public android.health.connect.datatypes.FloorsClimbedRecord.Builder clearEndZoneOffset();
1108    method @NonNull public android.health.connect.datatypes.FloorsClimbedRecord.Builder clearStartZoneOffset();
1109    method @NonNull public android.health.connect.datatypes.FloorsClimbedRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1110    method @NonNull public android.health.connect.datatypes.FloorsClimbedRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1111  }
1112
1113  public final class HeartRateRecord extends android.health.connect.datatypes.IntervalRecord {
1114    method @NonNull public java.util.List<android.health.connect.datatypes.HeartRateRecord.HeartRateSample> getSamples();
1115    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> BPM_AVG;
1116    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> BPM_MAX;
1117    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> BPM_MIN;
1118    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> HEART_MEASUREMENTS_COUNT;
1119  }
1120
1121  public static final class HeartRateRecord.Builder {
1122    ctor public HeartRateRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull java.util.List<android.health.connect.datatypes.HeartRateRecord.HeartRateSample>);
1123    method @NonNull public android.health.connect.datatypes.HeartRateRecord build();
1124    method @NonNull public android.health.connect.datatypes.HeartRateRecord.Builder clearEndZoneOffset();
1125    method @NonNull public android.health.connect.datatypes.HeartRateRecord.Builder clearStartZoneOffset();
1126    method @NonNull public android.health.connect.datatypes.HeartRateRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1127    method @NonNull public android.health.connect.datatypes.HeartRateRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1128  }
1129
1130  public static final class HeartRateRecord.HeartRateSample {
1131    ctor public HeartRateRecord.HeartRateSample(long, @NonNull java.time.Instant);
1132    method public long getBeatsPerMinute();
1133    method @NonNull public java.time.Instant getTime();
1134  }
1135
1136  public final class HeartRateVariabilityRmssdRecord extends android.health.connect.datatypes.InstantRecord {
1137    method public double getHeartRateVariabilityMillis();
1138  }
1139
1140  public static final class HeartRateVariabilityRmssdRecord.Builder {
1141    ctor public HeartRateVariabilityRmssdRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, double);
1142    method @NonNull public android.health.connect.datatypes.HeartRateVariabilityRmssdRecord build();
1143    method @NonNull public android.health.connect.datatypes.HeartRateVariabilityRmssdRecord.Builder clearZoneOffset();
1144    method @NonNull public android.health.connect.datatypes.HeartRateVariabilityRmssdRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1145  }
1146
1147  public final class HeightRecord extends android.health.connect.datatypes.InstantRecord {
1148    method @NonNull public android.health.connect.datatypes.units.Length getHeight();
1149    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Length> HEIGHT_AVG;
1150    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Length> HEIGHT_MAX;
1151    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Length> HEIGHT_MIN;
1152  }
1153
1154  public static final class HeightRecord.Builder {
1155    ctor public HeightRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Length);
1156    method @NonNull public android.health.connect.datatypes.HeightRecord build();
1157    method @NonNull public android.health.connect.datatypes.HeightRecord.Builder clearZoneOffset();
1158    method @NonNull public android.health.connect.datatypes.HeightRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1159  }
1160
1161  public final class HydrationRecord extends android.health.connect.datatypes.IntervalRecord {
1162    method @NonNull public android.health.connect.datatypes.units.Volume getVolume();
1163    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Volume> VOLUME_TOTAL;
1164  }
1165
1166  public static final class HydrationRecord.Builder {
1167    ctor public HydrationRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Volume);
1168    method @NonNull public android.health.connect.datatypes.HydrationRecord build();
1169    method @NonNull public android.health.connect.datatypes.HydrationRecord.Builder clearEndZoneOffset();
1170    method @NonNull public android.health.connect.datatypes.HydrationRecord.Builder clearStartZoneOffset();
1171    method @NonNull public android.health.connect.datatypes.HydrationRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1172    method @NonNull public android.health.connect.datatypes.HydrationRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1173  }
1174
1175  public abstract class InstantRecord extends android.health.connect.datatypes.Record {
1176    method @NonNull public java.time.Instant getTime();
1177    method @NonNull public java.time.ZoneOffset getZoneOffset();
1178  }
1179
1180  public final class IntermenstrualBleedingRecord extends android.health.connect.datatypes.InstantRecord {
1181  }
1182
1183  public static final class IntermenstrualBleedingRecord.Builder {
1184    ctor public IntermenstrualBleedingRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant);
1185    method @NonNull public android.health.connect.datatypes.IntermenstrualBleedingRecord build();
1186    method @NonNull public android.health.connect.datatypes.IntermenstrualBleedingRecord.Builder clearZoneOffset();
1187    method @NonNull public android.health.connect.datatypes.IntermenstrualBleedingRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1188  }
1189
1190  public abstract class IntervalRecord extends android.health.connect.datatypes.Record {
1191    method @NonNull public java.time.Instant getEndTime();
1192    method @NonNull public java.time.ZoneOffset getEndZoneOffset();
1193    method @NonNull public java.time.Instant getStartTime();
1194    method @NonNull public java.time.ZoneOffset getStartZoneOffset();
1195  }
1196
1197  public final class LeanBodyMassRecord extends android.health.connect.datatypes.InstantRecord {
1198    method @NonNull public android.health.connect.datatypes.units.Mass getMass();
1199  }
1200
1201  public static final class LeanBodyMassRecord.Builder {
1202    ctor public LeanBodyMassRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Mass);
1203    method @NonNull public android.health.connect.datatypes.LeanBodyMassRecord build();
1204    method @NonNull public android.health.connect.datatypes.LeanBodyMassRecord.Builder clearZoneOffset();
1205    method @NonNull public android.health.connect.datatypes.LeanBodyMassRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1206  }
1207
1208  public final class MealType {
1209    field public static final int MEAL_TYPE_BREAKFAST = 1; // 0x1
1210    field public static final int MEAL_TYPE_DINNER = 3; // 0x3
1211    field public static final int MEAL_TYPE_LUNCH = 2; // 0x2
1212    field public static final int MEAL_TYPE_SNACK = 4; // 0x4
1213    field public static final int MEAL_TYPE_UNKNOWN = 0; // 0x0
1214  }
1215
1216  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class MedicalDataSource implements android.os.Parcelable {
1217    method public int describeContents();
1218    method @NonNull public String getDisplayName();
1219    method @NonNull public android.net.Uri getFhirBaseUri();
1220    method @NonNull public android.health.connect.datatypes.FhirVersion getFhirVersion();
1221    method @NonNull public String getId();
1222    method @Nullable public java.time.Instant getLastDataUpdateTime();
1223    method @NonNull public String getPackageName();
1224    method public void writeToParcel(@NonNull android.os.Parcel, int);
1225    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.datatypes.MedicalDataSource> CREATOR;
1226  }
1227
1228  public static final class MedicalDataSource.Builder {
1229    ctor public MedicalDataSource.Builder(@NonNull String, @NonNull String, @NonNull android.net.Uri, @NonNull String, @NonNull android.health.connect.datatypes.FhirVersion);
1230    ctor public MedicalDataSource.Builder(@NonNull android.health.connect.datatypes.MedicalDataSource.Builder);
1231    ctor public MedicalDataSource.Builder(@NonNull android.health.connect.datatypes.MedicalDataSource);
1232    method @NonNull public android.health.connect.datatypes.MedicalDataSource build();
1233    method @NonNull public android.health.connect.datatypes.MedicalDataSource.Builder setDisplayName(@NonNull String);
1234    method @NonNull public android.health.connect.datatypes.MedicalDataSource.Builder setFhirBaseUri(@NonNull android.net.Uri);
1235    method @NonNull public android.health.connect.datatypes.MedicalDataSource.Builder setFhirVersion(@NonNull android.health.connect.datatypes.FhirVersion);
1236    method @NonNull public android.health.connect.datatypes.MedicalDataSource.Builder setId(@NonNull String);
1237    method @NonNull public android.health.connect.datatypes.MedicalDataSource.Builder setLastDataUpdateTime(@Nullable java.time.Instant);
1238    method @NonNull public android.health.connect.datatypes.MedicalDataSource.Builder setPackageName(@NonNull String);
1239  }
1240
1241  @FlaggedApi("com.android.healthfitness.flags.personal_health_record") public final class MedicalResource implements android.os.Parcelable {
1242    method public int describeContents();
1243    method @NonNull public String getDataSourceId();
1244    method @NonNull public android.health.connect.datatypes.FhirResource getFhirResource();
1245    method @NonNull public android.health.connect.datatypes.FhirVersion getFhirVersion();
1246    method @NonNull public android.health.connect.MedicalResourceId getId();
1247    method public int getType();
1248    method public void writeToParcel(@NonNull android.os.Parcel, int);
1249    field @NonNull public static final android.os.Parcelable.Creator<android.health.connect.datatypes.MedicalResource> CREATOR;
1250    field public static final int MEDICAL_RESOURCE_TYPE_ALLERGIES_INTOLERANCES = 2; // 0x2
1251    field public static final int MEDICAL_RESOURCE_TYPE_CONDITIONS = 7; // 0x7
1252    field public static final int MEDICAL_RESOURCE_TYPE_LABORATORY_RESULTS = 6; // 0x6
1253    field public static final int MEDICAL_RESOURCE_TYPE_MEDICATIONS = 9; // 0x9
1254    field public static final int MEDICAL_RESOURCE_TYPE_PERSONAL_DETAILS = 10; // 0xa
1255    field public static final int MEDICAL_RESOURCE_TYPE_PRACTITIONER_DETAILS = 11; // 0xb
1256    field public static final int MEDICAL_RESOURCE_TYPE_PREGNANCY = 3; // 0x3
1257    field public static final int MEDICAL_RESOURCE_TYPE_PROCEDURES = 8; // 0x8
1258    field public static final int MEDICAL_RESOURCE_TYPE_SOCIAL_HISTORY = 4; // 0x4
1259    field public static final int MEDICAL_RESOURCE_TYPE_VACCINES = 1; // 0x1
1260    field public static final int MEDICAL_RESOURCE_TYPE_VISITS = 12; // 0xc
1261    field public static final int MEDICAL_RESOURCE_TYPE_VITAL_SIGNS = 5; // 0x5
1262  }
1263
1264  public static final class MedicalResource.Builder {
1265    ctor public MedicalResource.Builder(int, @NonNull String, @NonNull android.health.connect.datatypes.FhirVersion, @NonNull android.health.connect.datatypes.FhirResource);
1266    ctor public MedicalResource.Builder(@NonNull android.health.connect.datatypes.MedicalResource.Builder);
1267    ctor public MedicalResource.Builder(@NonNull android.health.connect.datatypes.MedicalResource);
1268    method @NonNull public android.health.connect.datatypes.MedicalResource build();
1269    method @NonNull public android.health.connect.datatypes.MedicalResource.Builder setDataSourceId(@NonNull String);
1270    method @NonNull public android.health.connect.datatypes.MedicalResource.Builder setFhirResource(@NonNull android.health.connect.datatypes.FhirResource);
1271    method @NonNull public android.health.connect.datatypes.MedicalResource.Builder setFhirVersion(@NonNull android.health.connect.datatypes.FhirVersion);
1272    method @NonNull public android.health.connect.datatypes.MedicalResource.Builder setType(int);
1273  }
1274
1275  public final class MenstruationFlowRecord extends android.health.connect.datatypes.InstantRecord {
1276    method public int getFlow();
1277  }
1278
1279  public static final class MenstruationFlowRecord.Builder {
1280    ctor public MenstruationFlowRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int);
1281    method @NonNull public android.health.connect.datatypes.MenstruationFlowRecord build();
1282    method @NonNull public android.health.connect.datatypes.MenstruationFlowRecord.Builder clearZoneOffset();
1283    method @NonNull public android.health.connect.datatypes.MenstruationFlowRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1284  }
1285
1286  public static final class MenstruationFlowRecord.MenstruationFlowType {
1287    field public static final int FLOW_HEAVY = 3; // 0x3
1288    field public static final int FLOW_LIGHT = 1; // 0x1
1289    field public static final int FLOW_MEDIUM = 2; // 0x2
1290    field public static final int FLOW_UNKNOWN = 0; // 0x0
1291  }
1292
1293  public final class MenstruationPeriodRecord extends android.health.connect.datatypes.IntervalRecord {
1294  }
1295
1296  public static final class MenstruationPeriodRecord.Builder {
1297    ctor public MenstruationPeriodRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant);
1298    method @NonNull public android.health.connect.datatypes.MenstruationPeriodRecord build();
1299    method @NonNull public android.health.connect.datatypes.MenstruationPeriodRecord.Builder clearEndZoneOffset();
1300    method @NonNull public android.health.connect.datatypes.MenstruationPeriodRecord.Builder clearStartZoneOffset();
1301    method @NonNull public android.health.connect.datatypes.MenstruationPeriodRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1302    method @NonNull public android.health.connect.datatypes.MenstruationPeriodRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1303  }
1304
1305  public final class Metadata {
1306    method @Nullable public String getClientRecordId();
1307    method public long getClientRecordVersion();
1308    method @NonNull public android.health.connect.datatypes.DataOrigin getDataOrigin();
1309    method @NonNull public android.health.connect.datatypes.Device getDevice();
1310    method @NonNull public String getId();
1311    method @NonNull public java.time.Instant getLastModifiedTime();
1312    method public int getRecordingMethod();
1313    field public static final int RECORDING_METHOD_ACTIVELY_RECORDED = 1; // 0x1
1314    field public static final int RECORDING_METHOD_AUTOMATICALLY_RECORDED = 2; // 0x2
1315    field public static final int RECORDING_METHOD_MANUAL_ENTRY = 3; // 0x3
1316    field public static final int RECORDING_METHOD_UNKNOWN = 0; // 0x0
1317  }
1318
1319  public static final class Metadata.Builder {
1320    ctor public Metadata.Builder();
1321    method @NonNull public android.health.connect.datatypes.Metadata build();
1322    method @NonNull public android.health.connect.datatypes.Metadata.Builder setClientRecordId(@Nullable String);
1323    method @NonNull public android.health.connect.datatypes.Metadata.Builder setClientRecordVersion(long);
1324    method @NonNull public android.health.connect.datatypes.Metadata.Builder setDataOrigin(@NonNull android.health.connect.datatypes.DataOrigin);
1325    method @NonNull public android.health.connect.datatypes.Metadata.Builder setDevice(@NonNull android.health.connect.datatypes.Device);
1326    method @NonNull public android.health.connect.datatypes.Metadata.Builder setId(@NonNull String);
1327    method @NonNull public android.health.connect.datatypes.Metadata.Builder setLastModifiedTime(@NonNull java.time.Instant);
1328    method @NonNull public android.health.connect.datatypes.Metadata.Builder setRecordingMethod(int);
1329  }
1330
1331  @FlaggedApi("com.android.healthfitness.flags.mindfulness") public final class MindfulnessSessionRecord extends android.health.connect.datatypes.IntervalRecord {
1332    method public int getMindfulnessSessionType();
1333    method @Nullable public CharSequence getNotes();
1334    method @Nullable public CharSequence getTitle();
1335    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> MINDFULNESS_DURATION_TOTAL;
1336    field public static final int MINDFULNESS_SESSION_TYPE_BREATHING = 3; // 0x3
1337    field public static final int MINDFULNESS_SESSION_TYPE_MEDITATION = 1; // 0x1
1338    field public static final int MINDFULNESS_SESSION_TYPE_MOVEMENT = 5; // 0x5
1339    field public static final int MINDFULNESS_SESSION_TYPE_MUSIC = 4; // 0x4
1340    field public static final int MINDFULNESS_SESSION_TYPE_OTHER = 2; // 0x2
1341    field public static final int MINDFULNESS_SESSION_TYPE_UNGUIDED = 6; // 0x6
1342    field public static final int MINDFULNESS_SESSION_TYPE_UNKNOWN = 0; // 0x0
1343  }
1344
1345  public static final class MindfulnessSessionRecord.Builder {
1346    ctor public MindfulnessSessionRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, int);
1347    method @NonNull public android.health.connect.datatypes.MindfulnessSessionRecord build();
1348    method @NonNull public android.health.connect.datatypes.MindfulnessSessionRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1349    method @NonNull public android.health.connect.datatypes.MindfulnessSessionRecord.Builder setNotes(@Nullable CharSequence);
1350    method @NonNull public android.health.connect.datatypes.MindfulnessSessionRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1351    method @NonNull public android.health.connect.datatypes.MindfulnessSessionRecord.Builder setTitle(@Nullable CharSequence);
1352  }
1353
1354  public final class NutritionRecord extends android.health.connect.datatypes.IntervalRecord {
1355    method @Nullable public android.health.connect.datatypes.units.Mass getBiotin();
1356    method @Nullable public android.health.connect.datatypes.units.Mass getCaffeine();
1357    method @Nullable public android.health.connect.datatypes.units.Mass getCalcium();
1358    method @Nullable public android.health.connect.datatypes.units.Mass getChloride();
1359    method @Nullable public android.health.connect.datatypes.units.Mass getCholesterol();
1360    method @Nullable public android.health.connect.datatypes.units.Mass getChromium();
1361    method @Nullable public android.health.connect.datatypes.units.Mass getCopper();
1362    method @Nullable public android.health.connect.datatypes.units.Mass getDietaryFiber();
1363    method @Nullable public android.health.connect.datatypes.units.Energy getEnergy();
1364    method @Nullable public android.health.connect.datatypes.units.Energy getEnergyFromFat();
1365    method @Nullable public android.health.connect.datatypes.units.Mass getFolate();
1366    method @Nullable public android.health.connect.datatypes.units.Mass getFolicAcid();
1367    method @Nullable public android.health.connect.datatypes.units.Mass getIodine();
1368    method @Nullable public android.health.connect.datatypes.units.Mass getIron();
1369    method @Nullable public android.health.connect.datatypes.units.Mass getMagnesium();
1370    method @Nullable public android.health.connect.datatypes.units.Mass getManganese();
1371    method @Nullable public String getMealName();
1372    method public int getMealType();
1373    method @Nullable public android.health.connect.datatypes.units.Mass getMolybdenum();
1374    method @Nullable public android.health.connect.datatypes.units.Mass getMonounsaturatedFat();
1375    method @Nullable public android.health.connect.datatypes.units.Mass getNiacin();
1376    method @Nullable public android.health.connect.datatypes.units.Mass getPantothenicAcid();
1377    method @Nullable public android.health.connect.datatypes.units.Mass getPhosphorus();
1378    method @Nullable public android.health.connect.datatypes.units.Mass getPolyunsaturatedFat();
1379    method @Nullable public android.health.connect.datatypes.units.Mass getPotassium();
1380    method @Nullable public android.health.connect.datatypes.units.Mass getProtein();
1381    method @Nullable public android.health.connect.datatypes.units.Mass getRiboflavin();
1382    method @Nullable public android.health.connect.datatypes.units.Mass getSaturatedFat();
1383    method @Nullable public android.health.connect.datatypes.units.Mass getSelenium();
1384    method @Nullable public android.health.connect.datatypes.units.Mass getSodium();
1385    method @Nullable public android.health.connect.datatypes.units.Mass getSugar();
1386    method @Nullable public android.health.connect.datatypes.units.Mass getThiamin();
1387    method @Nullable public android.health.connect.datatypes.units.Mass getTotalCarbohydrate();
1388    method @Nullable public android.health.connect.datatypes.units.Mass getTotalFat();
1389    method @Nullable public android.health.connect.datatypes.units.Mass getTransFat();
1390    method @Nullable public android.health.connect.datatypes.units.Mass getUnsaturatedFat();
1391    method @Nullable public android.health.connect.datatypes.units.Mass getVitaminA();
1392    method @Nullable public android.health.connect.datatypes.units.Mass getVitaminB12();
1393    method @Nullable public android.health.connect.datatypes.units.Mass getVitaminB6();
1394    method @Nullable public android.health.connect.datatypes.units.Mass getVitaminC();
1395    method @Nullable public android.health.connect.datatypes.units.Mass getVitaminD();
1396    method @Nullable public android.health.connect.datatypes.units.Mass getVitaminE();
1397    method @Nullable public android.health.connect.datatypes.units.Mass getVitaminK();
1398    method @Nullable public android.health.connect.datatypes.units.Mass getZinc();
1399    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> BIOTIN_TOTAL;
1400    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> CAFFEINE_TOTAL;
1401    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> CALCIUM_TOTAL;
1402    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> CHLORIDE_TOTAL;
1403    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> CHOLESTEROL_TOTAL;
1404    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> CHROMIUM_TOTAL;
1405    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> COPPER_TOTAL;
1406    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> DIETARY_FIBER_TOTAL;
1407    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Energy> ENERGY_FROM_FAT_TOTAL;
1408    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Energy> ENERGY_TOTAL;
1409    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> FOLATE_TOTAL;
1410    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> FOLIC_ACID_TOTAL;
1411    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> IODINE_TOTAL;
1412    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> IRON_TOTAL;
1413    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> MAGNESIUM_TOTAL;
1414    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> MANGANESE_TOTAL;
1415    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> MOLYBDENUM_TOTAL;
1416    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> MONOUNSATURATED_FAT_TOTAL;
1417    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> NIACIN_TOTAL;
1418    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> PANTOTHENIC_ACID_TOTAL;
1419    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> PHOSPHORUS_TOTAL;
1420    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> POLYUNSATURATED_FAT_TOTAL;
1421    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> POTASSIUM_TOTAL;
1422    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> PROTEIN_TOTAL;
1423    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> RIBOFLAVIN_TOTAL;
1424    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> SATURATED_FAT_TOTAL;
1425    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> SELENIUM_TOTAL;
1426    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> SODIUM_TOTAL;
1427    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> SUGAR_TOTAL;
1428    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> THIAMIN_TOTAL;
1429    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> TOTAL_CARBOHYDRATE_TOTAL;
1430    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> TOTAL_FAT_TOTAL;
1431    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> TRANS_FAT_TOTAL;
1432    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> UNSATURATED_FAT_TOTAL;
1433    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> VITAMIN_A_TOTAL;
1434    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> VITAMIN_B12_TOTAL;
1435    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> VITAMIN_B6_TOTAL;
1436    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> VITAMIN_C_TOTAL;
1437    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> VITAMIN_D_TOTAL;
1438    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> VITAMIN_E_TOTAL;
1439    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> VITAMIN_K_TOTAL;
1440    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> ZINC_TOTAL;
1441  }
1442
1443  public static final class NutritionRecord.Builder {
1444    ctor public NutritionRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant);
1445    method @NonNull public android.health.connect.datatypes.NutritionRecord build();
1446    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder clearEndZoneOffset();
1447    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder clearStartZoneOffset();
1448    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setBiotin(@Nullable android.health.connect.datatypes.units.Mass);
1449    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setCaffeine(@Nullable android.health.connect.datatypes.units.Mass);
1450    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setCalcium(@Nullable android.health.connect.datatypes.units.Mass);
1451    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setChloride(@Nullable android.health.connect.datatypes.units.Mass);
1452    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setCholesterol(@Nullable android.health.connect.datatypes.units.Mass);
1453    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setChromium(@Nullable android.health.connect.datatypes.units.Mass);
1454    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setCopper(@Nullable android.health.connect.datatypes.units.Mass);
1455    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setDietaryFiber(@Nullable android.health.connect.datatypes.units.Mass);
1456    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1457    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setEnergy(@Nullable android.health.connect.datatypes.units.Energy);
1458    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setEnergyFromFat(@Nullable android.health.connect.datatypes.units.Energy);
1459    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setFolate(@Nullable android.health.connect.datatypes.units.Mass);
1460    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setFolicAcid(@Nullable android.health.connect.datatypes.units.Mass);
1461    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setIodine(@Nullable android.health.connect.datatypes.units.Mass);
1462    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setIron(@Nullable android.health.connect.datatypes.units.Mass);
1463    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setMagnesium(@Nullable android.health.connect.datatypes.units.Mass);
1464    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setManganese(@Nullable android.health.connect.datatypes.units.Mass);
1465    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setMealName(@NonNull String);
1466    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setMealType(int);
1467    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setMolybdenum(@Nullable android.health.connect.datatypes.units.Mass);
1468    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setMonounsaturatedFat(@Nullable android.health.connect.datatypes.units.Mass);
1469    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setNiacin(@Nullable android.health.connect.datatypes.units.Mass);
1470    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setPantothenicAcid(@Nullable android.health.connect.datatypes.units.Mass);
1471    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setPhosphorus(@Nullable android.health.connect.datatypes.units.Mass);
1472    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setPolyunsaturatedFat(@Nullable android.health.connect.datatypes.units.Mass);
1473    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setPotassium(@Nullable android.health.connect.datatypes.units.Mass);
1474    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setProtein(@Nullable android.health.connect.datatypes.units.Mass);
1475    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setRiboflavin(@Nullable android.health.connect.datatypes.units.Mass);
1476    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setSaturatedFat(@Nullable android.health.connect.datatypes.units.Mass);
1477    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setSelenium(@Nullable android.health.connect.datatypes.units.Mass);
1478    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setSodium(@Nullable android.health.connect.datatypes.units.Mass);
1479    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1480    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setSugar(@Nullable android.health.connect.datatypes.units.Mass);
1481    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setThiamin(@Nullable android.health.connect.datatypes.units.Mass);
1482    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setTotalCarbohydrate(@Nullable android.health.connect.datatypes.units.Mass);
1483    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setTotalFat(@Nullable android.health.connect.datatypes.units.Mass);
1484    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setTransFat(@Nullable android.health.connect.datatypes.units.Mass);
1485    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setUnsaturatedFat(@Nullable android.health.connect.datatypes.units.Mass);
1486    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setVitaminA(@Nullable android.health.connect.datatypes.units.Mass);
1487    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setVitaminB12(@Nullable android.health.connect.datatypes.units.Mass);
1488    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setVitaminB6(@Nullable android.health.connect.datatypes.units.Mass);
1489    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setVitaminC(@Nullable android.health.connect.datatypes.units.Mass);
1490    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setVitaminD(@Nullable android.health.connect.datatypes.units.Mass);
1491    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setVitaminE(@Nullable android.health.connect.datatypes.units.Mass);
1492    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setVitaminK(@Nullable android.health.connect.datatypes.units.Mass);
1493    method @NonNull public android.health.connect.datatypes.NutritionRecord.Builder setZinc(@Nullable android.health.connect.datatypes.units.Mass);
1494  }
1495
1496  public final class OvulationTestRecord extends android.health.connect.datatypes.InstantRecord {
1497    method public int getResult();
1498  }
1499
1500  public static final class OvulationTestRecord.Builder {
1501    ctor public OvulationTestRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int);
1502    method @NonNull public android.health.connect.datatypes.OvulationTestRecord build();
1503    method @NonNull public android.health.connect.datatypes.OvulationTestRecord.Builder clearZoneOffset();
1504    method @NonNull public android.health.connect.datatypes.OvulationTestRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1505  }
1506
1507  public static final class OvulationTestRecord.OvulationTestResult {
1508    field public static final int RESULT_HIGH = 2; // 0x2
1509    field public static final int RESULT_INCONCLUSIVE = 0; // 0x0
1510    field public static final int RESULT_NEGATIVE = 3; // 0x3
1511    field public static final int RESULT_POSITIVE = 1; // 0x1
1512  }
1513
1514  public final class OxygenSaturationRecord extends android.health.connect.datatypes.InstantRecord {
1515    method @NonNull public android.health.connect.datatypes.units.Percentage getPercentage();
1516  }
1517
1518  public static final class OxygenSaturationRecord.Builder {
1519    ctor public OxygenSaturationRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Percentage);
1520    method @NonNull public android.health.connect.datatypes.OxygenSaturationRecord build();
1521    method @NonNull public android.health.connect.datatypes.OxygenSaturationRecord.Builder clearZoneOffset();
1522    method @NonNull public android.health.connect.datatypes.OxygenSaturationRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1523  }
1524
1525  @FlaggedApi("com.android.healthconnect.flags.training_plans") public final class PlannedExerciseBlock {
1526    method @Nullable public CharSequence getDescription();
1527    method public int getRepetitions();
1528    method @NonNull public java.util.List<android.health.connect.datatypes.PlannedExerciseStep> getSteps();
1529  }
1530
1531  public static final class PlannedExerciseBlock.Builder {
1532    ctor public PlannedExerciseBlock.Builder(int);
1533    method @NonNull public android.health.connect.datatypes.PlannedExerciseBlock.Builder addStep(@NonNull android.health.connect.datatypes.PlannedExerciseStep);
1534    method @NonNull public android.health.connect.datatypes.PlannedExerciseBlock build();
1535    method @NonNull public android.health.connect.datatypes.PlannedExerciseBlock.Builder clearSteps();
1536    method @NonNull public android.health.connect.datatypes.PlannedExerciseBlock.Builder setDescription(@Nullable CharSequence);
1537    method @NonNull public android.health.connect.datatypes.PlannedExerciseBlock.Builder setRepetitions(int);
1538    method @NonNull public android.health.connect.datatypes.PlannedExerciseBlock.Builder setSteps(@NonNull java.util.List<android.health.connect.datatypes.PlannedExerciseStep>);
1539  }
1540
1541  @FlaggedApi("com.android.healthconnect.flags.training_plans") public final class PlannedExerciseSessionRecord extends android.health.connect.datatypes.IntervalRecord {
1542    method @NonNull public java.util.List<android.health.connect.datatypes.PlannedExerciseBlock> getBlocks();
1543    method @Nullable public String getCompletedExerciseSessionId();
1544    method @NonNull public java.time.Duration getDuration();
1545    method public int getExerciseType();
1546    method @Nullable public CharSequence getNotes();
1547    method @NonNull public java.time.LocalDate getStartDate();
1548    method @Nullable public CharSequence getTitle();
1549    method public boolean hasExplicitTime();
1550  }
1551
1552  public static final class PlannedExerciseSessionRecord.Builder {
1553    ctor public PlannedExerciseSessionRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, int, @NonNull java.time.Instant, @NonNull java.time.Instant);
1554    ctor public PlannedExerciseSessionRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, int, @NonNull java.time.LocalDate, @NonNull java.time.Duration);
1555    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder addBlock(@NonNull android.health.connect.datatypes.PlannedExerciseBlock);
1556    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord build();
1557    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder clearBlocks();
1558    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder clearEndZoneOffset();
1559    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder clearStartZoneOffset();
1560    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setBlocks(@NonNull java.util.List<android.health.connect.datatypes.PlannedExerciseBlock>);
1561    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setEndTime(@NonNull java.time.Instant);
1562    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1563    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setExerciseType(int);
1564    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setMetadata(@NonNull android.health.connect.datatypes.Metadata);
1565    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setNotes(@Nullable CharSequence);
1566    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setStartTime(@NonNull java.time.Instant);
1567    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1568    method @NonNull public android.health.connect.datatypes.PlannedExerciseSessionRecord.Builder setTitle(@Nullable CharSequence);
1569  }
1570
1571  @FlaggedApi("com.android.healthconnect.flags.training_plans") public final class PlannedExerciseStep {
1572    method @NonNull public android.health.connect.datatypes.ExerciseCompletionGoal getCompletionGoal();
1573    method @Nullable public CharSequence getDescription();
1574    method public int getExerciseCategory();
1575    method public int getExerciseType();
1576    method @NonNull public java.util.List<android.health.connect.datatypes.ExercisePerformanceGoal> getPerformanceGoals();
1577    field public static final int EXERCISE_CATEGORY_ACTIVE = 3; // 0x3
1578    field public static final int EXERCISE_CATEGORY_COOLDOWN = 4; // 0x4
1579    field public static final int EXERCISE_CATEGORY_RECOVERY = 5; // 0x5
1580    field public static final int EXERCISE_CATEGORY_REST = 2; // 0x2
1581    field public static final int EXERCISE_CATEGORY_UNKNOWN = 0; // 0x0
1582    field public static final int EXERCISE_CATEGORY_WARMUP = 1; // 0x1
1583  }
1584
1585  public static final class PlannedExerciseStep.Builder {
1586    ctor public PlannedExerciseStep.Builder(int, int, @NonNull android.health.connect.datatypes.ExerciseCompletionGoal);
1587    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep.Builder addPerformanceGoal(@NonNull android.health.connect.datatypes.ExercisePerformanceGoal);
1588    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep build();
1589    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep.Builder clearPerformanceGoals();
1590    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep.Builder setCompletionGoal(@NonNull android.health.connect.datatypes.ExerciseCompletionGoal);
1591    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep.Builder setDescription(@Nullable CharSequence);
1592    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep.Builder setExerciseCategory(int);
1593    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep.Builder setExerciseType(int);
1594    method @NonNull public android.health.connect.datatypes.PlannedExerciseStep.Builder setPerformanceGoals(@NonNull java.util.List<android.health.connect.datatypes.ExercisePerformanceGoal>);
1595  }
1596
1597  public final class PowerRecord extends android.health.connect.datatypes.IntervalRecord {
1598    method @NonNull public java.util.List<android.health.connect.datatypes.PowerRecord.PowerRecordSample> getSamples();
1599    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Power> POWER_AVG;
1600    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Power> POWER_MAX;
1601    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Power> POWER_MIN;
1602  }
1603
1604  public static final class PowerRecord.Builder {
1605    ctor public PowerRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull java.util.List<android.health.connect.datatypes.PowerRecord.PowerRecordSample>);
1606    method @NonNull public android.health.connect.datatypes.PowerRecord build();
1607    method @NonNull public android.health.connect.datatypes.PowerRecord.Builder clearEndZoneOffset();
1608    method @NonNull public android.health.connect.datatypes.PowerRecord.Builder clearStartZoneOffset();
1609    method @NonNull public android.health.connect.datatypes.PowerRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1610    method @NonNull public android.health.connect.datatypes.PowerRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1611  }
1612
1613  public static final class PowerRecord.PowerRecordSample {
1614    ctor public PowerRecord.PowerRecordSample(@NonNull android.health.connect.datatypes.units.Power, @NonNull java.time.Instant);
1615    method @NonNull public android.health.connect.datatypes.units.Power getPower();
1616    method @NonNull public java.time.Instant getTime();
1617  }
1618
1619  public abstract class Record {
1620    method @NonNull public android.health.connect.datatypes.Metadata getMetadata();
1621  }
1622
1623  public final class RespiratoryRateRecord extends android.health.connect.datatypes.InstantRecord {
1624    method public double getRate();
1625  }
1626
1627  public static final class RespiratoryRateRecord.Builder {
1628    ctor public RespiratoryRateRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @FloatRange(from=0, to=1000) double);
1629    method @NonNull public android.health.connect.datatypes.RespiratoryRateRecord build();
1630    method @NonNull public android.health.connect.datatypes.RespiratoryRateRecord.Builder clearZoneOffset();
1631    method @NonNull public android.health.connect.datatypes.RespiratoryRateRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1632  }
1633
1634  public final class RestingHeartRateRecord extends android.health.connect.datatypes.InstantRecord {
1635    method public long getBeatsPerMinute();
1636    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> BPM_AVG;
1637    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> BPM_MAX;
1638    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> BPM_MIN;
1639  }
1640
1641  public static final class RestingHeartRateRecord.Builder {
1642    ctor public RestingHeartRateRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @IntRange(from=1, to=300) long);
1643    method @NonNull public android.health.connect.datatypes.RestingHeartRateRecord build();
1644    method @NonNull public android.health.connect.datatypes.RestingHeartRateRecord.Builder clearZoneOffset();
1645    method @NonNull public android.health.connect.datatypes.RestingHeartRateRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1646  }
1647
1648  public final class SexualActivityRecord extends android.health.connect.datatypes.InstantRecord {
1649    method public int getProtectionUsed();
1650  }
1651
1652  public static final class SexualActivityRecord.Builder {
1653    ctor public SexualActivityRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int);
1654    method @NonNull public android.health.connect.datatypes.SexualActivityRecord build();
1655    method @NonNull public android.health.connect.datatypes.SexualActivityRecord.Builder clearZoneOffset();
1656    method @NonNull public android.health.connect.datatypes.SexualActivityRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1657  }
1658
1659  public static final class SexualActivityRecord.SexualActivityProtectionUsed {
1660    field public static final int PROTECTION_USED_PROTECTED = 1; // 0x1
1661    field public static final int PROTECTION_USED_UNKNOWN = 0; // 0x0
1662    field public static final int PROTECTION_USED_UNPROTECTED = 2; // 0x2
1663  }
1664
1665  @FlaggedApi("com.android.healthconnect.flags.skin_temperature") public final class SkinTemperatureRecord extends android.health.connect.datatypes.IntervalRecord {
1666    method @Nullable public android.health.connect.datatypes.units.Temperature getBaseline();
1667    method @NonNull public java.util.List<android.health.connect.datatypes.SkinTemperatureRecord.Delta> getDeltas();
1668    method public int getMeasurementLocation();
1669    field public static final int MEASUREMENT_LOCATION_FINGER = 1; // 0x1
1670    field public static final int MEASUREMENT_LOCATION_TOE = 2; // 0x2
1671    field public static final int MEASUREMENT_LOCATION_UNKNOWN = 0; // 0x0
1672    field public static final int MEASUREMENT_LOCATION_WRIST = 3; // 0x3
1673    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.TemperatureDelta> SKIN_TEMPERATURE_DELTA_AVG;
1674    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.TemperatureDelta> SKIN_TEMPERATURE_DELTA_MAX;
1675    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.TemperatureDelta> SKIN_TEMPERATURE_DELTA_MIN;
1676  }
1677
1678  public static final class SkinTemperatureRecord.Builder {
1679    ctor public SkinTemperatureRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant);
1680    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord build();
1681    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord.Builder clearEndZoneOffset();
1682    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord.Builder clearStartZoneOffset();
1683    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord.Builder setBaseline(@Nullable android.health.connect.datatypes.units.Temperature);
1684    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord.Builder setDeltas(@NonNull java.util.List<android.health.connect.datatypes.SkinTemperatureRecord.Delta>);
1685    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1686    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord.Builder setMeasurementLocation(int);
1687    method @NonNull public android.health.connect.datatypes.SkinTemperatureRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1688  }
1689
1690  public static final class SkinTemperatureRecord.Delta {
1691    ctor public SkinTemperatureRecord.Delta(@NonNull android.health.connect.datatypes.units.TemperatureDelta, @NonNull java.time.Instant);
1692    method @NonNull public android.health.connect.datatypes.units.TemperatureDelta getDelta();
1693    method @NonNull public java.time.Instant getTime();
1694  }
1695
1696  public final class SleepSessionRecord extends android.health.connect.datatypes.IntervalRecord {
1697    method @Nullable public CharSequence getNotes();
1698    method @NonNull public java.util.List<android.health.connect.datatypes.SleepSessionRecord.Stage> getStages();
1699    method @Nullable public CharSequence getTitle();
1700    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> SLEEP_DURATION_TOTAL;
1701  }
1702
1703  public static final class SleepSessionRecord.Builder {
1704    ctor public SleepSessionRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant);
1705    method @NonNull public android.health.connect.datatypes.SleepSessionRecord build();
1706    method @NonNull public android.health.connect.datatypes.SleepSessionRecord.Builder clearEndZoneOffset();
1707    method @NonNull public android.health.connect.datatypes.SleepSessionRecord.Builder clearStartZoneOffset();
1708    method @NonNull public android.health.connect.datatypes.SleepSessionRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1709    method @NonNull public android.health.connect.datatypes.SleepSessionRecord.Builder setNotes(@Nullable CharSequence);
1710    method @NonNull public android.health.connect.datatypes.SleepSessionRecord.Builder setStages(@NonNull java.util.List<android.health.connect.datatypes.SleepSessionRecord.Stage>);
1711    method @NonNull public android.health.connect.datatypes.SleepSessionRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1712    method @NonNull public android.health.connect.datatypes.SleepSessionRecord.Builder setTitle(@Nullable CharSequence);
1713  }
1714
1715  public static class SleepSessionRecord.Stage {
1716    ctor public SleepSessionRecord.Stage(@NonNull java.time.Instant, @NonNull java.time.Instant, int);
1717    method @NonNull public java.time.Instant getEndTime();
1718    method @NonNull public java.time.Instant getStartTime();
1719    method public int getType();
1720  }
1721
1722  public static final class SleepSessionRecord.StageType {
1723    field public static final int STAGE_TYPE_AWAKE = 1; // 0x1
1724    field public static final int STAGE_TYPE_AWAKE_IN_BED = 7; // 0x7
1725    field public static final int STAGE_TYPE_AWAKE_OUT_OF_BED = 3; // 0x3
1726    field public static final int STAGE_TYPE_SLEEPING = 2; // 0x2
1727    field public static final int STAGE_TYPE_SLEEPING_DEEP = 5; // 0x5
1728    field public static final int STAGE_TYPE_SLEEPING_LIGHT = 4; // 0x4
1729    field public static final int STAGE_TYPE_SLEEPING_REM = 6; // 0x6
1730    field public static final int STAGE_TYPE_UNKNOWN = 0; // 0x0
1731  }
1732
1733  public final class SpeedRecord extends android.health.connect.datatypes.IntervalRecord {
1734    method @NonNull public java.util.List<android.health.connect.datatypes.SpeedRecord.SpeedRecordSample> getSamples();
1735    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Velocity> SPEED_AVG;
1736    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Velocity> SPEED_MAX;
1737    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Velocity> SPEED_MIN;
1738  }
1739
1740  public static final class SpeedRecord.Builder {
1741    ctor public SpeedRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull java.util.List<android.health.connect.datatypes.SpeedRecord.SpeedRecordSample>);
1742    method @NonNull public android.health.connect.datatypes.SpeedRecord build();
1743    method @NonNull public android.health.connect.datatypes.SpeedRecord.Builder clearEndZoneOffset();
1744    method @NonNull public android.health.connect.datatypes.SpeedRecord.Builder clearStartZoneOffset();
1745    method @NonNull public android.health.connect.datatypes.SpeedRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1746    method @NonNull public android.health.connect.datatypes.SpeedRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1747  }
1748
1749  public static final class SpeedRecord.SpeedRecordSample {
1750    ctor public SpeedRecord.SpeedRecordSample(@NonNull android.health.connect.datatypes.units.Velocity, @NonNull java.time.Instant);
1751    method @NonNull public android.health.connect.datatypes.units.Velocity getSpeed();
1752    method @NonNull public java.time.Instant getTime();
1753  }
1754
1755  public final class StepsCadenceRecord extends android.health.connect.datatypes.IntervalRecord {
1756    method @NonNull public java.util.List<android.health.connect.datatypes.StepsCadenceRecord.StepsCadenceRecordSample> getSamples();
1757    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Double> STEPS_CADENCE_RATE_AVG;
1758    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Double> STEPS_CADENCE_RATE_MAX;
1759    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Double> STEPS_CADENCE_RATE_MIN;
1760  }
1761
1762  public static final class StepsCadenceRecord.Builder {
1763    ctor public StepsCadenceRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull java.util.List<android.health.connect.datatypes.StepsCadenceRecord.StepsCadenceRecordSample>);
1764    method @NonNull public android.health.connect.datatypes.StepsCadenceRecord build();
1765    method @NonNull public android.health.connect.datatypes.StepsCadenceRecord.Builder clearEndZoneOffset();
1766    method @NonNull public android.health.connect.datatypes.StepsCadenceRecord.Builder clearStartZoneOffset();
1767    method @NonNull public android.health.connect.datatypes.StepsCadenceRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1768    method @NonNull public android.health.connect.datatypes.StepsCadenceRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1769  }
1770
1771  public static final class StepsCadenceRecord.StepsCadenceRecordSample {
1772    ctor public StepsCadenceRecord.StepsCadenceRecordSample(double, @NonNull java.time.Instant);
1773    method public double getRate();
1774    method @NonNull public java.time.Instant getTime();
1775  }
1776
1777  public final class StepsRecord extends android.health.connect.datatypes.IntervalRecord {
1778    method public long getCount();
1779    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> STEPS_COUNT_TOTAL;
1780  }
1781
1782  public static final class StepsRecord.Builder {
1783    ctor public StepsRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, long);
1784    method @NonNull public android.health.connect.datatypes.StepsRecord build();
1785    method @NonNull public android.health.connect.datatypes.StepsRecord.Builder clearEndZoneOffset();
1786    method @NonNull public android.health.connect.datatypes.StepsRecord.Builder clearStartZoneOffset();
1787    method @NonNull public android.health.connect.datatypes.StepsRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1788    method @NonNull public android.health.connect.datatypes.StepsRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1789  }
1790
1791  public final class TotalCaloriesBurnedRecord extends android.health.connect.datatypes.IntervalRecord {
1792    method @NonNull public android.health.connect.datatypes.units.Energy getEnergy();
1793    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Energy> ENERGY_TOTAL;
1794  }
1795
1796  public static final class TotalCaloriesBurnedRecord.Builder {
1797    ctor public TotalCaloriesBurnedRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Energy);
1798    method @NonNull public android.health.connect.datatypes.TotalCaloriesBurnedRecord build();
1799    method @NonNull public android.health.connect.datatypes.TotalCaloriesBurnedRecord.Builder clearEndZoneOffset();
1800    method @NonNull public android.health.connect.datatypes.TotalCaloriesBurnedRecord.Builder clearStartZoneOffset();
1801    method @NonNull public android.health.connect.datatypes.TotalCaloriesBurnedRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1802    method @NonNull public android.health.connect.datatypes.TotalCaloriesBurnedRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1803  }
1804
1805  public final class Vo2MaxRecord extends android.health.connect.datatypes.InstantRecord {
1806    method public int getMeasurementMethod();
1807    method public double getVo2MillilitersPerMinuteKilogram();
1808  }
1809
1810  public static final class Vo2MaxRecord.Builder {
1811    ctor public Vo2MaxRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, int, @FloatRange(from=0, to=100) double);
1812    method @NonNull public android.health.connect.datatypes.Vo2MaxRecord build();
1813    method @NonNull public android.health.connect.datatypes.Vo2MaxRecord.Builder clearZoneOffset();
1814    method @NonNull public android.health.connect.datatypes.Vo2MaxRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1815  }
1816
1817  public static final class Vo2MaxRecord.Vo2MaxMeasurementMethod {
1818    field public static final int MEASUREMENT_METHOD_COOPER_TEST = 3; // 0x3
1819    field public static final int MEASUREMENT_METHOD_HEART_RATE_RATIO = 2; // 0x2
1820    field public static final int MEASUREMENT_METHOD_METABOLIC_CART = 1; // 0x1
1821    field public static final int MEASUREMENT_METHOD_MULTISTAGE_FITNESS_TEST = 4; // 0x4
1822    field public static final int MEASUREMENT_METHOD_OTHER = 0; // 0x0
1823    field public static final int MEASUREMENT_METHOD_ROCKPORT_FITNESS_TEST = 5; // 0x5
1824  }
1825
1826  public final class WeightRecord extends android.health.connect.datatypes.InstantRecord {
1827    method @NonNull public android.health.connect.datatypes.units.Mass getWeight();
1828    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> WEIGHT_AVG;
1829    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> WEIGHT_MAX;
1830    field @NonNull public static final android.health.connect.datatypes.AggregationType<android.health.connect.datatypes.units.Mass> WEIGHT_MIN;
1831  }
1832
1833  public static final class WeightRecord.Builder {
1834    ctor public WeightRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull android.health.connect.datatypes.units.Mass);
1835    method @NonNull public android.health.connect.datatypes.WeightRecord build();
1836    method @NonNull public android.health.connect.datatypes.WeightRecord.Builder clearZoneOffset();
1837    method @NonNull public android.health.connect.datatypes.WeightRecord.Builder setZoneOffset(@NonNull java.time.ZoneOffset);
1838  }
1839
1840  public final class WheelchairPushesRecord extends android.health.connect.datatypes.IntervalRecord {
1841    method public long getCount();
1842    field @NonNull public static final android.health.connect.datatypes.AggregationType<java.lang.Long> WHEEL_CHAIR_PUSHES_COUNT_TOTAL;
1843  }
1844
1845  public static final class WheelchairPushesRecord.Builder {
1846    ctor public WheelchairPushesRecord.Builder(@NonNull android.health.connect.datatypes.Metadata, @NonNull java.time.Instant, @NonNull java.time.Instant, @IntRange(from=1, to=1000000) long);
1847    method @NonNull public android.health.connect.datatypes.WheelchairPushesRecord build();
1848    method @NonNull public android.health.connect.datatypes.WheelchairPushesRecord.Builder clearEndZoneOffset();
1849    method @NonNull public android.health.connect.datatypes.WheelchairPushesRecord.Builder clearStartZoneOffset();
1850    method @NonNull public android.health.connect.datatypes.WheelchairPushesRecord.Builder setEndZoneOffset(@NonNull java.time.ZoneOffset);
1851    method @NonNull public android.health.connect.datatypes.WheelchairPushesRecord.Builder setStartZoneOffset(@NonNull java.time.ZoneOffset);
1852  }
1853
1854}
1855
1856package android.health.connect.datatypes.units {
1857
1858  public final class BloodGlucose implements java.lang.Comparable<android.health.connect.datatypes.units.BloodGlucose> {
1859    method public int compareTo(@NonNull android.health.connect.datatypes.units.BloodGlucose);
1860    method @NonNull public static android.health.connect.datatypes.units.BloodGlucose fromMillimolesPerLiter(double);
1861    method public double getInMillimolesPerLiter();
1862  }
1863
1864  public final class Energy implements java.lang.Comparable<android.health.connect.datatypes.units.Energy> {
1865    method public int compareTo(@NonNull android.health.connect.datatypes.units.Energy);
1866    method @NonNull public static android.health.connect.datatypes.units.Energy fromCalories(double);
1867    method public double getInCalories();
1868  }
1869
1870  public final class Length implements java.lang.Comparable<android.health.connect.datatypes.units.Length> {
1871    method public int compareTo(@NonNull android.health.connect.datatypes.units.Length);
1872    method @NonNull public static android.health.connect.datatypes.units.Length fromMeters(double);
1873    method public double getInMeters();
1874  }
1875
1876  public final class Mass implements java.lang.Comparable<android.health.connect.datatypes.units.Mass> {
1877    method public int compareTo(@NonNull android.health.connect.datatypes.units.Mass);
1878    method @NonNull public static android.health.connect.datatypes.units.Mass fromGrams(double);
1879    method public double getInGrams();
1880  }
1881
1882  public final class Percentage implements java.lang.Comparable<android.health.connect.datatypes.units.Percentage> {
1883    method public int compareTo(@NonNull android.health.connect.datatypes.units.Percentage);
1884    method @NonNull public static android.health.connect.datatypes.units.Percentage fromValue(double);
1885    method public double getValue();
1886  }
1887
1888  public final class Power implements java.lang.Comparable<android.health.connect.datatypes.units.Power> {
1889    method public int compareTo(@NonNull android.health.connect.datatypes.units.Power);
1890    method @NonNull public static android.health.connect.datatypes.units.Power fromWatts(double);
1891    method public double getInWatts();
1892  }
1893
1894  public final class Pressure implements java.lang.Comparable<android.health.connect.datatypes.units.Pressure> {
1895    method public int compareTo(@NonNull android.health.connect.datatypes.units.Pressure);
1896    method @NonNull public static android.health.connect.datatypes.units.Pressure fromMillimetersOfMercury(double);
1897    method public double getInMillimetersOfMercury();
1898  }
1899
1900  public final class Temperature implements java.lang.Comparable<android.health.connect.datatypes.units.Temperature> {
1901    method public int compareTo(@NonNull android.health.connect.datatypes.units.Temperature);
1902    method @NonNull public static android.health.connect.datatypes.units.Temperature fromCelsius(double);
1903    method public double getInCelsius();
1904  }
1905
1906  @FlaggedApi("com.android.healthconnect.flags.skin_temperature") public final class TemperatureDelta implements java.lang.Comparable<android.health.connect.datatypes.units.TemperatureDelta> {
1907    method public int compareTo(@NonNull android.health.connect.datatypes.units.TemperatureDelta);
1908    method @NonNull public static android.health.connect.datatypes.units.TemperatureDelta fromCelsius(double);
1909    method public double getInCelsius();
1910  }
1911
1912  public final class Velocity implements java.lang.Comparable<android.health.connect.datatypes.units.Velocity> {
1913    method public int compareTo(@NonNull android.health.connect.datatypes.units.Velocity);
1914    method @NonNull public static android.health.connect.datatypes.units.Velocity fromMetersPerSecond(double);
1915    method public double getInMetersPerSecond();
1916  }
1917
1918  public final class Volume implements java.lang.Comparable<android.health.connect.datatypes.units.Volume> {
1919    method public int compareTo(@NonNull android.health.connect.datatypes.units.Volume);
1920    method @NonNull public static android.health.connect.datatypes.units.Volume fromLiters(double);
1921    method public double getInLiters();
1922  }
1923
1924}
1925
1926