Health Connect-Datentypen planen und prüfen

Health Connect speichert und strukturiert Gesundheits- und Fitnessdaten. Außerdem wird berücksichtigt, wie verschiedene Datentypen gemessen werden. Zu diesen Datentypen gehören sofortige Herzfrequenzmessungen, die im Laufe der Zeit erfasste Schrittzahl und in Sitzungen erfasste Schlafdaten.

Es ist wichtig, dass Sie zuerst die von Health Connect angebotenen Datentypen und Berechtigungen kennen, damit Sie die Anforderungen Ihrer App planen können. Daher müssen Sie Ihre Datentypen überprüfen, bevor Sie Ihre Anforderungen festlegen können.

Kategorien von Datentypen

Health Connect unterstützt Datentypen, die in den meisten Gesundheits- und Fitness-Apps verwendet werden, um eine möglichst große Vielfalt zu bieten. Health Connect soll einen umfassenden Überblick über Gesundheits- und Fitnessdaten bieten und diese speichern. Diese Datentypen lassen sich in folgende Kategorien einteilen:

  • Aktivität:Hier wird jede Aktivität erfasst, die ein Nutzer ausführt. Dazu können Gesundheits- und Fitnessaktivitäten wie Laufen und Schwimmen gehören.
  • Körpermessung:Hier werden allgemeine Daten zum Körper erfasst, z. B. das Gewicht und der Grundumsatz eines Nutzers.
  • Zyklus-Tracking:Hier werden Menstruationszyklen und zugehörige Datenpunkte erfasst, z. B. das binäre Ergebnis eines Ovulationstests.
  • Ernährung:Hier werden Datentypen für Flüssigkeitszufuhr und Ernährung erfasst. Ersteres gibt an, wie viel Wasser ein Nutzer bei einem einzelnen Getränk zu sich nimmt. Letzteres umfasst optionale Felder wie Kalorien, Zucker und Magnesium.
  • Schlaf:Hier werden Intervall-Daten zur Dauer und Art des Schlafs eines Nutzers erfasst.
  • Vitalparameter:Hier werden wichtige Informationen zum allgemeinen Gesundheitszustand des Nutzers erfasst. Dazu gehören Daten wie Körpertemperatur, Blutzucker, Blutdruck und Sauerstoffsättigung.

Format des Datentyps

Datentypen in Health Connect werden in Objekten gespeichert, die Unterklassen von Record sind.

Für jeden Datentyp gibt es zugehörige Felder, die entweder generisch sind, z. B. time und zoneOffset, oder spezifisch, z. B. title, count und percentage. Für einige Felder werden einfache Typen wie „long“, „double“ oder „string“ verwendet, für andere komplexe Typen wie Aufzählungen und Klassen wie Instant und ZoneOffset. Die Attribute dieser Felder können erforderlich oder optional sein. Einige Attribute sind schreibgeschützt und einige Attribute sind auf einen bestimmten Wertebereich begrenzt.

Eine vollständige Liste der verfügbaren Datentypen und ihrer Felder finden Sie in den Klassen in Jetpack.

Zusätzliche Datenattribute

Die Daten in der Health Connect API enthalten auch Metadaten-Attribute, die in der folgenden Liste beschrieben werden:

  • Health Connect-ID:Jedem Datenpunkt wird bei der Erstellung eine eindeutige Kennung (UID) zugewiesen. Das ist nützlich für Standard-Lese- und ‑Schreibvorgänge. Weitere Informationen finden Sie unter Health Connect-ID.
  • Zeitpunkt der letzten Änderung:Dies ist der Zeitstempel der letzten Aktualisierung eines Datensatzes. Sie wird automatisch bei der ersten Erstellung des Datensatzes oder bei jeder Aktualisierung generiert.
  • Datenquelle:Health Connect speichert Informationen zur App, aus der die Daten stammen. Sie enthält den Paketnamen dieses Ursprungs, der beim Erstellen automatisch hinzugefügt wird.
  • Gerät:Health Connect speichert Informationen zum Gerät, von dem die Daten stammen. Es enthält den Hersteller und das Modell des Geräts, für das Sie den Wert manuell angeben.
  • Client-ID:Health Connect stellt Client-IDs bereit, damit Client-Apps mit ihren eigenen IDs auf Daten verweisen können. Das erleichtert die Konfliktlösung und die Synchronisierung. Sie wird dem Datensatz manuell hinzugefügt.
  • Client-Datensatzversion:Zusammen mit der Client-ID bietet Health Connect eine Versionsverwaltung, um Änderungen bei der Datensynchronisierung nachzuverfolgen. Sie wird dem Datensatz manuell zugewiesen.
  • Aufzeichnungsmethode:In Health Connect können Sie nachvollziehen, wie Daten aufgezeichnet werden. Dazu gehören Apps, die Daten passiv (automatisch) aufzeichnen, und Nutzer, die Daten aktiv oder manuell aufzeichnen.

Health Connect-ID

Health Connect weist neu eingefügten Datenobjekten eindeutige Kennungen (UIDs) zu, mit denen Datenobjekte identifiziert und von anderen unterschieden werden. Health Connect-IDs sind bei Lese- oder Schreibanfragen nützlich. Health Connect-IDs sind nicht mit Client-IDs identisch. In einer Client-App werden Client-IDs zugewiesen, in Health Connect ausschließlich Health Connect-IDs.

Beachten Sie bei der Arbeit mit Health Connect-IDs Folgendes:

  • Sitzungen haben eine einzelne Health Connect-ID, aber Daten innerhalb von Sitzungen haben eigene Health Connect-IDs.
  • Health Connect-IDs sind nicht mit Zeitstempeln verknüpft oder beziehen sich auf diese.
  • Bei einigen Anwendungsfällen muss möglicherweise während eines Arbeitsablaufs eine bestimmte Health Connect-ID gespeichert werden. So ist beispielsweise eine bestimmte ID erforderlich, um den Dateneintrag abzurufen und einem Nutzer anzuzeigen, den er gerade protokolliert hat.

Zeit in Health Connect

Für alle Daten, die in Health Connect geschrieben werden, muss die Zonen-Offset-Information angegeben werden. Durch die Angabe des Zonen-Offsets können Apps die Daten lesen und in der bürgerlichen Zeit darstellen. Die bürgerliche Zeit ist die Ortszeit, die für den Nutzer relevant ist, aber nicht unbedingt in koordinierter Weltzeit (UTC) angegeben wird.

In seltenen Fällen ist der Zonen-Offset möglicherweise nicht verfügbar. Wenn dies in Android 14 (API-Level 34) geschieht, legt Health Connect den Zonen-Offset basierend auf der standardmäßigen Zeitzone des Geräts fest. In Android 13 und niedrigeren Versionen (API-Level 33 und niedriger) ist es möglich, in Health Connect zu schreiben, ohne Informationen zur Zeitzonenabweichung anzugeben. Das sollte jedoch nach Möglichkeit vermieden werden.

Uhrzeit und Zone einstellen

Wenn Sie beim Schreiben von Daten Informationen zum Zonen-Offset angeben, werden beim Lesen von Daten in Health Connect Informationen zur Zeitzone bereitgestellt. In bestimmten Situationen kann das jedoch nicht gelingen, z. B. wenn der Zonen-Offset nicht angegeben wird. Ihre App muss so vorbereitet sein, dass sie beide Arten von Daten verarbeiten kann.

Berechtigungen

Bevor Sie Berechtigungen anfordern, müssen Sie sie zuerst im Manifest deklarieren. In den folgenden Tabellen finden Sie die vollständige Zuordnung von Datentypen und ihren Berechtigungen.

Für Version 1.0.0-alpha10 und höher

Berechtigungsreferenz Erklärung zu Berechtigungen lesen
Hintergrundlesevorgänge android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
Verlauf android.permission.health.READ_HEALTH_DATA_HISTORY

Eintragsklassentyp Erklärung zu Lese- und Schreibberechtigungen
ActiveCaloriesBurned android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
BasalBodyTemperature android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE
BasalMetabolicRate android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE
BloodGlucose android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE
BloodPressure android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE
BodyFat android.permission.health.READ_BODY_FAT
android.permission.health.WRITE_BODY_FAT
BodyTemperature android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE
BodyWaterMass android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS
BoneMass android.permission.health.READ_BONE_MASS
android.permission.health.WRITE_BONE_MASS
CervicalMucus android.permission.health.READ_CERVICAL_MUCUS
android.permission.health.WRITE_CERVICAL_MUCUS
CyclingPedalingCadence android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
Strecke android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE
ElevationGained android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
ExerciseSession android.permission.health.READ_EXERCISE
android.permission.health.READ_EXERCISE_ROUTE
android.permission.health.WRITE_EXERCISE
android.permission.health.WRITE_EXERCISE_ROUTE

Trainingstyp

EXERCISE_TYPE_BIKING
EXERCISE_TYPE_BIKING_HAND
EXERCISE_TYPE_BIKING_MOUNTAIN
EXERCISE_TYPE_BIKING_ROAD
EXERCISE_TYPE_BIKING_SPINNING
EXERCISE_TYPE_BIKING_STATIONARY
EXERCISE_TYPE_BIKING_UTURN
EXERCISE_TYPE_CANOEING
EXERCISE_TYPE_CROSSFIT
EXERCISE_TYPE_DANCING
EXERCISE_TYPE_ELLIPTICAL
EXERCISE_TYPE_GOLF
EXERCISE_TYPE_HORSEBACK_RIDING
EXERCISE_TYPE_KAYAKING
EXERCISE_TYPE_KICKBOXING
EXERCISE_TYPE_MARTIAL_ARTS
EXERCISE_TYPE_PILATES
EXERCISE_TYPE_ROLLERBLADING
EXERCISE_TYPE_RUNNING
EXERCISE_TYPE_RUNNING_JOGGING
EXERCISE_TYPE_RUNNING_SAND
FloorsClimbed android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
HeartRate android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE
HeartRateVariabilityRmssd android.permission.health.READ_HEART_RATE_VARIABILITY
android.permission.health.WRITE_HEART_RATE_VARIABILITY
Höhe android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT
Flüssigkeitszufuhr android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION
IntermenstrualBleeding android.permission.health.READ_INTERMENSTRUAL_BLEEDING
android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING
LeanBodyMass android.permission.health.READ_LEAN_BODY_MASS
android.permission.health.WRITE_LEAN_BODY_MASS
MenstruationFlow android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
MindfulnessSession android.permission.health.READ_MINDFULNESS
android.permission.health.WRITE_MINDFULNESS
Ernährung android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION
OvulationTest android.permission.health.READ_OVULATION_TEST
android.permission.health.WRITE_OVULATION_TEST
OxygenSaturation android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION
PlannedExerciseSession android.permission.health.READ_PLANNED_EXERCISE
android.permission.health.WRITE_PLANNED_EXERCISE
Stromversorgung android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
RespiratoryRate android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE
RestingHeartRate android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE
SexualActivity android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY
SkinTemperature android.permission.health.READ_SKIN_TEMPERATURE
android.permission.health.WRITE_SKIN_TEMPERATURE
SleepSession android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP
Geschwindigkeit android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
Schritte android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
StepsCadence android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
TotalCaloriesBurned android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED
Maximale Sauerstoffaufnahme android.permission.health.READ_VO2_MAX
android.permission.health.WRITE_VO2_MAX
Gewicht android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT
WheelchairPushes android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

Für Version 1.0.0-alpha09 und niedriger

Eintragsklassentyp Erklärung zu Lese- und Schreibberechtigungen
ActiveCaloriesBurned androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
BasalBodyTemperature androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE
BasalMetabolicRate androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE
BloodGlucose androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE
BloodPressure androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE
BodyFat androidx.health.permission.BodyFat.READ
androidx.health.permission.BodyFat.WRITE
BodyTemperature androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE
BodyWaterMass androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE
BoneMass androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE
CervicalMucus androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE
CyclingPedalingCadence androidx.health.permission.Exercise.READ
androidx.health.permission.Exercise.WRITE
Strecke androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
ElevationGained androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
ExerciseSession androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE

Trainingstyp

EXERCISE_TYPE_BIKING
EXERCISE_TYPE_BIKING_HAND
EXERCISE_TYPE_BIKING_MOUNTAIN
EXERCISE_TYPE_BIKING_ROAD
EXERCISE_TYPE_BIKING_SPINNING
EXERCISE_TYPE_BIKING_STATIONARY
EXERCISE_TYPE_BIKING_UTURN
EXERCISE_TYPE_CANOEING
EXERCISE_TYPE_CROSSFIT
EXERCISE_TYPE_DANCING
EXERCISE_TYPE_ELLIPTICAL
EXERCISE_TYPE_GOLF
EXERCISE_TYPE_HORSEBACK_RIDING
EXERCISE_TYPE_KAYAKING
EXERCISE_TYPE_KICKBOXING
EXERCISE_TYPE_MARTIAL_ARTS
EXERCISE_TYPE_PILATES
EXERCISE_TYPE_ROLLERBLADING
EXERCISE_TYPE_RUNNING
EXERCISE_TYPE_RUNNING_JOGGING
EXERCISE_TYPE_RUNNING_SAND
FloorsClimbed androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE
HeartRate androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
HeartRateVariabilityRmssd androidx.health.permission.HeartRateVariability.READ
androidx.health.permission.HeartRateVariability.WRITE
Höhe androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Flüssigkeitszufuhr androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
IntermenstrualBleeding androidx.health.permission.IntermenstrualBleeding.READ
androidx.health.permission.IntermenstrualBleeding.WRITE
LeanBodyMass androidx.health.permission.LeanBodyMass.READ
androidx.health.permission.LeanBodyMass.WRITE
MenstruationFlow androidx.health.permission.Menstruation.READ
androidx.health.permission.Menstruation.WRITE
Ernährung androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
OvulationTest androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE
OxygenSaturation androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE
PlannedExerciseSession androidx.health.permission.PlannedExerciseSession.READ
androidx.health.permission.PlannedExerciseSession.WRITE
Stromversorgung androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
RespiratoryRate androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE
RestingHeartRate androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE
SexualActivity androidx.health.permission.SexualActivity.READ
androidx.health.permission.SexualActivity.WRITE
SleepSession androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE
Geschwindigkeit androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE
Schritte androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
StepsCadence androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
Maximale Sauerstoffaufnahme androidx.health.permission.VO2Max.READ
androidx.health.permission.VO2Max.WRITE
Gewicht androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE
WheelchairPushes androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE

Datentypen und Berechtigungen prüfen

Nachdem Sie Ihre Datentypen und Berechtigungen geplant haben, können Sie sie während der Entwicklung implementieren.

Wenn Sie Ihre App vor dem Hochladen in den Play Store überprüfen, sollten Sie die Liste der von Ihrer App benötigten Datentypen und Berechtigungen noch einmal genau durchgehen. So können Sie die Datennutzung Ihrer App genau angeben.

Wenn Sie Ihre App im Play Store veröffentlichen möchten, müssen Sie den Zugriff auf die Health Connect-Datentypen deklarieren, die von Ihrer App verwendet werden. Andernfalls wird Nutzern möglicherweise eine Fehlermeldung angezeigt, dass Ihre App nicht auf die Health Connect-Datentypen zugreifen kann, da diese eine spezielle Genehmigung erfordern.