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.
Base sample
Section titled “Base sample”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).
Common typed samples
Section titled “Common typed samples”| 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 |
BloodPressureSample |
Systolic/diastolic millimeters of mercury |
PowerSample |
Timestamped watts |
SpeedSample |
Timestamped meters/second |
CyclingCadenceSample |
Timestamped revolutions/minute |
MenstruationFlowSample |
Platform category value |
CervicalMucusSample |
Platform category values |
Workout read/write difference
Section titled “Workout read/write difference”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.
Registry and active-device availability
Section titled “Registry and active-device availability”HealthDataTypeRegistry.AllTypes, GetById, GetByCategory,
GetPublicApiStatus, and platform metadata describe the SDK catalog. They do
not guarantee the current device can perform an operation.
Use HealthBridgeService.GetDataTypeCapabilities() to enumerate the active
platform and GetDataTypeCapability(id) for a selected type. Enable a read or
write only when CanRead or CanWrite is true. Use Availability and Reason
to explain read-only, unavailable, deprecated, and permission-only rows.
HealthDataTypeInfo.GetFields(platform) is the source of truth for generic
schemas: field keys, required values, units, allowed ranges, and legal category
choices. Some concepts exist only on one platform or require specialized flows.
Show the capability reason rather than inventing parity or a generic payload.
API and permission IDs
Section titled “API and permission IDs”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.
