HealthPermissionStatus

Represents the inferred read-permission status for health data tracking.

On iOS / watchOS (HealthKit), Apple deliberately does not expose whether the user granted or denied individual read permissions — a denied read is indistinguishable from "granted but no data exists". The status is therefore inferred: if the authorization dialog has not been shown → NOT_DETERMINED; if a step-data probe over the last 30 days returns data → LIKELY_GRANTED; if it was shown but no data is found → the result is genuinely unknowable and reported as INCONCLUSIVE. HealthKit reads never report LIKELY_DENIED — the platform can't tell you that.

Recommended consumer flow on iOS: don't gate features on this status. Call requestPermissions() (it only prompts once), then attempt the read. Treat INCONCLUSIVE as "can't confirm" — surface a non-blocking hint that directs the user to Settings → Privacy → Health (re-prompting does nothing once the sheet has been shown), rather than blocking. A truly-denied user simply syncs no data.

On Android (Health Connect), permissions are checked directly via the granted-permissions set, so grant/deny is authoritative. The mapping is:

Entries

Link copied to clipboard

The permission dialog has not yet been shown to the user.

Link copied to clipboard

Permission is effectively granted — health data is accessible.

Link copied to clipboard

Permission was likely denied — health data is not accessible.

Link copied to clipboard

The authorization dialog has been shown, but the SDK cannot confirm read access because no health data was found in the probe window. iOS / watchOS (HealthKit) only, and genuinely ambiguous — it covers both an actual denial and a permissioned user with no recent data (new device, no history, watch-only). Don't treat it as denied: direct the user to Settings if they expected data to sync, and otherwise proceed.

Link copied to clipboard

The health platform is not available on this device.

Properties

Link copied to clipboard

Returns a representation of an immutable list of all enum entries, in the order they're declared.

Link copied to clipboard
expect val name: String
Link copied to clipboard
expect val ordinal: Int

Functions

Link copied to clipboard

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Link copied to clipboard

Returns an array containing the constants of this enum type, in the order they're declared.