Skip to content

Data types, fields, and units

HealthBridge uses unified IDs across the editor, HealthKit, and Health Connect. The registry contains both public API types and permission-only entries.

HealthDataSample contains Id, DataTypeId, UTC Unix-millisecond start/end times, Source, generic Values, and computed date/duration helpers.

It has no single Value property. Cast to a typed subclass or call GetValue<T>(key).

Type Primary fields and units
StepsSample Count
SleepSample Stages and total duration in milliseconds/TimeSpan
WeightSample WeightKg
CaloriesSample EnergyKcal
DistanceSample DistanceMeters, computed kilometers
HydrationSample VolumeLiters, computed milliliters
NutritionSample Meal details and optional nutrient grams/kilocalories
HeartRateSample Unix-millisecond timestamp and beats per minute

WorkoutData reads use CaloriesBurned, kilometer summary Distance, optional Steps, and TimeInHrZones.

WorkoutWriteSample writes use CaloriesBurnedKcal, meter-based DistanceMeters, optional Steps, and raw HeartRateSamples. Duration is derived from StartTime and EndTime.

Use HealthDataTypeRegistry.AllTypes, GetById, GetByCategory, GetPublicApiStatus, and platform metadata before generating dynamic UI.

Some registry concepts exist only on one platform or have no safe equivalent. Show an unsupported state rather than inventing parity.

Short gameplay IDs such as calories and distance can map to registry rows such as active_calories_burned and distance_walking_running. Configure permissions from registry metadata, not string guessing.