Health Class API
Constructor
Section titled “Constructor”Health()Creates a new Health instance. Typically used as a singleton.
final health = Health();Permission Methods
Section titled “Permission Methods”hasPermissions
Section titled “hasPermissions”Check if permissions have been granted.
Future<bool?> hasPermissions( List<HealthDataType> types, { List<HealthDataAccess>? permissions,})Returns: true (granted), false (denied), or null (not determined)
requestAuthorization
Section titled “requestAuthorization”Request user authorization for health data access.
Future<bool> requestAuthorization( List<HealthDataType> types, { List<HealthDataAccess>? permissions,})Returns: true if authorization granted
revokePermissions
Section titled “revokePermissions”Revoke previously granted permissions.
Future<bool> revokePermissions()Returns: true if permissions revoked successfully
Reading Methods
Section titled “Reading Methods”getHealthDataFromTypes
Section titled “getHealthDataFromTypes”Read health data points for specified types and time range.
Future<List<HealthDataPoint>> getHealthDataFromTypes({ required List<HealthDataType> types, required DateTime startDate, required DateTime endDate, bool includeManualEntry = true,})getHealthIntervalDataFromTypes
Section titled “getHealthIntervalDataFromTypes”Read health data aggregated into time intervals.
Future<List<HealthDataPoint>> getHealthIntervalDataFromTypes({ required DateTime startDate, required DateTime endDate, required List<HealthDataType> types, required Duration interval, bool includeManualEntry = true,})getHealthAggregateDataFromTypes
Section titled “getHealthAggregateDataFromTypes”Read pre-aggregated health data (primarily for workouts).
Future<List<HealthDataPoint>> getHealthAggregateDataFromTypes({ required List<HealthDataType> types, required DateTime startDate, required DateTime endDate, int activitySegmentDuration = 1, bool includeManualEntry = true,})getTotalStepsInInterval
Section titled “getTotalStepsInInterval”Get total step count for a time period.
Future<int?> getTotalStepsInInterval( DateTime startDate, DateTime endDate,)Returns: Total steps or null if no data
Writing Methods
Section titled “Writing Methods”writeHealthData
Section titled “writeHealthData”Write numeric health data.
Future<bool> writeHealthData({ required double value, required HealthDataType type, required DateTime startTime, DateTime? endTime, String? sourceId, String? sourceName, DateTime? recordingTime,})writeWorkoutData
Section titled “writeWorkoutData”Write workout/exercise session data.
Future<bool> writeWorkoutData({ required HealthWorkoutActivityType activityType, required DateTime start, required DateTime end, double? totalEnergyBurned, int? totalEnergyBurnedUnit, double? totalDistance, int? totalDistanceUnit,})writeBloodPressure
Section titled “writeBloodPressure”Write blood pressure readings.
Future<bool> writeBloodPressure({ required double systolic, required double diastolic, required DateTime startTime, DateTime? endTime,})writeBloodOxygen
Section titled “writeBloodOxygen”Write blood oxygen saturation data.
Future<bool> writeBloodOxygen({ required double saturation, required DateTime startTime, DateTime? endTime, double? flowRate,})writeMeal
Section titled “writeMeal”Write nutrition/meal data.
Future<bool> writeMeal({ required DateTime startTime, DateTime? endTime, MealType? mealType, String? name, double? calories, double? protein, double? carbs, double? fat, // ... many more micronutrient parameters})writeMenstruationFlow
Section titled “writeMenstruationFlow”Write menstrual flow data.
Future<bool> writeMenstruationFlow({ required MenstruationFlow flow, required DateTime startTime, DateTime? endTime,})writeAudiogram
Section titled “writeAudiogram”Write hearing test results.
Future<bool> writeAudiogram({ required List<double> frequencies, required List<double> leftEarSensitivities, required List<double> rightEarSensitivities, required DateTime startTime, DateTime? endTime,})writeInsulinDelivery
Section titled “writeInsulinDelivery”Write insulin delivery data.
Future<bool> writeInsulinDelivery({ required double units, required DateTime startTime, DateTime? endTime,})Deletion Methods
Section titled “Deletion Methods”delete
Section titled “delete”Delete health data by type and time range.
Future<bool> delete({ required HealthDataType type, required DateTime startTime, required DateTime endTime,})deleteByUUID
Section titled “deleteByUUID”Delete specific data point by UUID (iOS only).
Future<bool> deleteByUUID({ required String uuid,})deleteByClientRecordId
Section titled “deleteByClientRecordId”Delete data by custom record ID (Android only).
Future<bool> deleteByClientRecordId({ required String clientRecordId,})Health Connect Methods (Android)
Section titled “Health Connect Methods (Android)”getHealthConnectSdkStatus
Section titled “getHealthConnectSdkStatus”Check Health Connect SDK installation status.
Future<HealthConnectSdkStatus> getHealthConnectSdkStatus()Returns: SDK status enum value
isHealthConnectAvailable
Section titled “isHealthConnectAvailable”Check if Health Connect is available on device.
Future<bool> isHealthConnectAvailable()installHealthConnect
Section titled “installHealthConnect”Open Health Connect installation in Play Store.
Future<void> installHealthConnect()hasHistoricalAccessPermissions
Section titled “hasHistoricalAccessPermissions”Check historical data access permissions.
Future<bool> hasHistoricalAccessPermissions( List<HealthDataType> types,)requestHistoricalAccessPermissions
Section titled “requestHistoricalAccessPermissions”Request access to historical health data.
Future<bool> requestHistoricalAccessPermissions( List<HealthDataType> types,)revokeHistoricalAccessPermissions
Section titled “revokeHistoricalAccessPermissions”Revoke historical data access.
Future<void> revokeHistoricalAccessPermissions()hasBackgroundAccessPermissions
Section titled “hasBackgroundAccessPermissions”Check background data access permissions.
Future<bool> hasBackgroundAccessPermissions( List<HealthDataType> types,)requestBackgroundAccessPermissions
Section titled “requestBackgroundAccessPermissions”Request background data access.
Future<bool> requestBackgroundAccessPermissions( List<HealthDataType> types,)revokeBackgroundAccessPermissions
Section titled “revokeBackgroundAccessPermissions”Revoke background data access.
Future<void> revokeBackgroundAccessPermissions()Platform Configuration
Section titled “Platform Configuration”configure (iOS)
Section titled “configure (iOS)”Configure iOS HealthKit background delivery.
Future<bool> configure()Method Summary
Section titled “Method Summary”| Category | Methods | Count |
|---|---|---|
| Permissions | hasPermissions, requestAuthorization, revokePermissions | 3 |
| Reading | getHealthDataFromTypes, getHealthIntervalDataFromTypes, getHealthAggregateDataFromTypes, getTotalStepsInInterval | 4 |
| Writing | writeHealthData, writeWorkoutData, writeBloodPressure, writeBloodOxygen, writeMeal, writeMenstruationFlow, writeAudiogram, writeInsulinDelivery | 8 |
| Deletion | delete, deleteByUUID, deleteByClientRecordId | 3 |
| Health Connect | getHealthConnectSdkStatus, isHealthConnectAvailable, installHealthConnect, has/request/revokeHistoricalAccess, has/request/revokeBackgroundAccess | 9 |
| Configuration | configure | 1 |
| Total | 28 |
See Also
Section titled “See Also”- Data Models - HealthDataPoint and value types
- Enums - All enumeration types
- Permissions - Permission management guide