Skip to content

Health Class API

Health()

Creates a new Health instance. Typically used as a singleton.

final health = Health();

Check if permissions have been granted.

Future<bool?> hasPermissions(
List<HealthDataType> types, {
List<HealthDataAccess>? permissions,
})

Returns: true (granted), false (denied), or null (not determined)

See Permissions docs

Request user authorization for health data access.

Future<bool> requestAuthorization(
List<HealthDataType> types, {
List<HealthDataAccess>? permissions,
})

Returns: true if authorization granted

See Permissions docs

Revoke previously granted permissions.

Future<bool> revokePermissions()

Returns: true if permissions revoked successfully

See Permissions docs

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,
})

See Basic Reading docs

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,
})

See Interval Reading docs

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,
})

See Aggregate Reading docs

Get total step count for a time period.

Future<int?> getTotalStepsInInterval(
DateTime startDate,
DateTime endDate,
)

Returns: Total steps or null if no data

See Steps Reading docs

Write numeric health data.

Future<bool> writeHealthData({
required double value,
required HealthDataType type,
required DateTime startTime,
DateTime? endTime,
String? sourceId,
String? sourceName,
DateTime? recordingTime,
})

See Basic Writing docs

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,
})

See Workout Writing docs

Write blood pressure readings.

Future<bool> writeBloodPressure({
required double systolic,
required double diastolic,
required DateTime startTime,
DateTime? endTime,
})

See Blood Pressure docs

Write blood oxygen saturation data.

Future<bool> writeBloodOxygen({
required double saturation,
required DateTime startTime,
DateTime? endTime,
double? flowRate,
})

See Blood Oxygen docs

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
})

See Nutrition docs

Write menstrual flow data.

Future<bool> writeMenstruationFlow({
required MenstruationFlow flow,
required DateTime startTime,
DateTime? endTime,
})

See Specialized Writing docs

Write hearing test results.

Future<bool> writeAudiogram({
required List<double> frequencies,
required List<double> leftEarSensitivities,
required List<double> rightEarSensitivities,
required DateTime startTime,
DateTime? endTime,
})

See Specialized Writing docs

Write insulin delivery data.

Future<bool> writeInsulinDelivery({
required double units,
required DateTime startTime,
DateTime? endTime,
})

See Specialized Writing docs

Delete health data by type and time range.

Future<bool> delete({
required HealthDataType type,
required DateTime startTime,
required DateTime endTime,
})

See Deletion docs

Delete specific data point by UUID (iOS only).

Future<bool> deleteByUUID({
required String uuid,
})

See Deletion docs

Delete data by custom record ID (Android only).

Future<bool> deleteByClientRecordId({
required String clientRecordId,
})

See Deletion docs

Check Health Connect SDK installation status.

Future<HealthConnectSdkStatus> getHealthConnectSdkStatus()

Returns: SDK status enum value

See Health Connect docs

Check if Health Connect is available on device.

Future<bool> isHealthConnectAvailable()

See Health Connect docs

Open Health Connect installation in Play Store.

Future<void> installHealthConnect()

See Health Connect docs

Check historical data access permissions.

Future<bool> hasHistoricalAccessPermissions(
List<HealthDataType> types,
)

See Health Connect docs

Request access to historical health data.

Future<bool> requestHistoricalAccessPermissions(
List<HealthDataType> types,
)

See Health Connect docs

Revoke historical data access.

Future<void> revokeHistoricalAccessPermissions()

See Health Connect docs

Check background data access permissions.

Future<bool> hasBackgroundAccessPermissions(
List<HealthDataType> types,
)

See Health Connect docs

Request background data access.

Future<bool> requestBackgroundAccessPermissions(
List<HealthDataType> types,
)

See Health Connect docs

Revoke background data access.

Future<void> revokeBackgroundAccessPermissions()

See Health Connect docs

Configure iOS HealthKit background delivery.

Future<bool> configure()
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