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 Schrittzahl im Zeitverlauf und Schlafdaten aus Sitzungen.

Es ist wichtig, zuerst zu verstehen, welche Datentypen und Berechtigungen Health Connect bietet, damit Sie die Anforderungen Ihrer App planen können. Sie müssen also Ihre Datentypen prüfen, bevor Sie Ihre Anforderungen fertigstellen können.

Datentypkategorien

Health Connect unterstützt Datentypen, die in den meisten Gesundheits- und Fitness-Apps verwendet werden, um möglichst viel Abwechslung zu bieten. Health Connect soll einen umfassenden Überblick über Gesundheits- und Fitnessdaten bieten und diese speichern. Diese Datentypen lassen sich in die folgenden Kategorien unterteilen:

  • Aktivität:Hier werden alle Aktivitäten eines Nutzers erfasst. Dazu können auch Aktivitäten wie Laufen und Schwimmen gehören.
  • Körpermessung:Hier werden gängige Daten zum Körper erfasst, z. B. das Gewicht und der Grundumsatz eines Nutzers.
  • Zyklus-Tracking:Hier werden Menstruationszyklen und zugehörige Daten erfasst, z. B. das binäre Ergebnis eines Ovulationstests.
  • Ernährung:Hier werden die Datentypen „Flüssigkeitszufuhr“ und „Ernährung“ erfasst. Ersteres gibt an, wie viel Wasser ein Nutzer mit einer einzelnen Portion zu sich nimmt. Letztere enthält optionale Felder wie Kalorien, Zucker und Magnesium.
  • Schlaf:Hier werden Intervalldaten zur Dauer und Art des Schlafs eines Nutzers erfasst.
  • Vitale Daten:Hier werden wichtige Informationen zur allgemeinen Gesundheit 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 sind Felder verknüpft, die entweder generisch wie time und zoneOffset oder spezifisch wie title, count und percentage sind. Für einige Felder werden einfache Typen wie „long“, „double“ oder „string“ verwendet, während für andere Felder komplexe Typen wie Enumerationen und Klassen wie Instant und ZoneOffset verwendet werden. Die Attribute dieser Felder können erforderlich oder optional sein. Einige Attribute sind schreibgeschützt und einige Attribute sind auf einen bestimmten Wertebereich beschränkt.

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 beim Erstellen eine eindeutige Kennung (UID) zugewiesen. Das ist nützlich für Standardlese- und Schreibvorgänge. Weitere Informationen finden Sie unter Health Connect-ID.
  • Zuletzt geändert:Dies ist der Zeitstempel der letzten Instanz, für die ein Eintrag aktualisiert wurde. Sie wird automatisch beim ersten Erstellen des Eintrags oder bei jeder Aktualisierung generiert.
  • Herkunft der Daten:In Health Connect werden Informationen zur App gespeichert, aus der die Daten stammen. Sie enthält den Paketnamen dieser Quelle, der beim Erstellen automatisch hinzugefügt wird.
  • Gerät:In Health Connect werden Informationen zum Gerät gespeichert, von dem die Daten stammen. Sie 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 Daten mit ihren eigenen IDs referenzieren können. Das hilft bei der Konfliktbehebung und vereinfacht die Synchronisierung. Dieser Wert wird manuell in den Eintrag eingetragen.
  • Version des Kundeneintrags:Neben der Client-ID bietet Health Connect eine Versionierung, mit der sich Änderungen bei der Datensynchronisierung besser nachvollziehen lassen. Dieser Wert wird manuell in den Eintrag eingetragen.
  • Aufzeichnungsmethode:In Health Connect kannst du nachsehen, wie Daten aufgezeichnet werden. Dazu gehören Apps, die Daten passiv (automatisch) erfassen, und Nutzer, die Daten aktiv oder manuell erfassen.

Health Connect-ID

Health Connect weist neu eingefügten Datenobjekten eindeutige Kennungen (UIDs) zu, mit denen sie identifiziert und von anderen unterschieden werden können. Health Connect-IDs sind nützlich für Lese- oder Schreibanfragen. Health Connect-IDs sind nicht mit Client-IDs identisch. Client-IDs werden von einer Client-App zugewiesen, während Health Connect ausschließlich Health Connect-IDs zuweist.

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 verwandt.
  • Bei einigen Anwendungsfällen muss während eines Workflows möglicherweise eine bestimmte Health Connect-ID gespeichert werden. Beispielsweise ist eine bestimmte ID erforderlich, um die Dateneingabe abzurufen und einem Nutzer anzuzeigen, die er gerade protokolliert hat.

Zeit in Health Connect

Für alle Daten, die in Health Connect geschrieben werden, müssen die Informationen zum Zeitzonenoffset angegeben werden. Wenn Sie den Zeitzonenoffset angeben, können Apps die Daten lesen und in ziviler Zeit darstellen. Die bürgerliche Zeit ist die lokale und für den Nutzer relevante Zeit, aber nicht unbedingt die koordinierte Weltzeit (UTC).

In seltenen Fällen ist der Zeitzonenoffset möglicherweise nicht verfügbar. In Android 14 (API-Level 34) legt Health Connect den Zeitzonenoffset basierend auf der Standardzeitzone des Geräts fest. Unter Android 13 und niedrigeren Versionen (API-Level 33 und niedriger) ist es möglich, Daten in Health Connect zu schreiben, ohne Informationen zum Zeitzonenoffset anzugeben. Dies sollte nach Möglichkeit vermieden werden.

Uhrzeit und Zeitzone

Wenn Sie beim Schreiben von Daten Informationen zum Zeitzonenoffset angeben, werden beim Lesen von Daten in Health Connect Informationen zur Zeitzone bereitgestellt. In bestimmten Situationen funktioniert das jedoch nicht, z. B. wenn der Zeitzonenoffset nicht angegeben ist. Ihre App muss mit beiden Arten von Daten umgehen können, und zwar auf eine Weise, die für Ihre spezifischen Umstände sinnvoll ist.

Berechtigungen

Bevor Berechtigungen angefordert werden, müssen sie in Ihrem Manifest deklariert werden. In den folgenden Tabellen finden Sie eine vollständige Zuordnung der Datentypen und ihrer Berechtigungen.

Für 1.0.0-alpha10 und höher

Datensatztyp 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
Blutzucker android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE
Blutdruck 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
Trainingseinheit android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
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
Ausreichend Flüssigkeit zu sich nehmen android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION
Zwischenblutung 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
MenstruationPeriod android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
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
Sauerstoffsättigung android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION
PlannedExercise 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
Ruhepuls 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 androidx.health.permission.SkinTemperature.READ
androidx.health.permission.SkinTemperature.WRITE
SleepSession android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP
Geschwindigkeit android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
SchritteKadenz android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
Schritte 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
VO2max 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 1.0.0-alpha09 und niedriger

Datensatztyp 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
Blutzucker androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE
Blutdruck 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.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE
Strecke androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
ElevationGained androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
Trainingseinheit androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE
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.HeartRateVariabilityRmssd.READ
androidx.health.permission.HeartRateVariabilityRmssd.WRITE
Höhe androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Ausreichend Flüssigkeit zu sich nehmen androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
Zwischenblutung 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.MenstruationFlow.READ
androidx.health.permission.MenstruationFlow.WRITE
Ernährung androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
OvulationTest androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE
Sauerstoffsättigung androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE
Stromversorgung androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
RespiratoryRate androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE
Ruhepuls 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
SchritteKadenz androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE
Schritte androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
VO2max 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.

Prüfen Sie vor dem Hochladen Ihrer App in den Play Store noch einmal die Liste der Datentypen und Berechtigungen, die für Ihre App erforderlich sind. So können Sie die Datennutzung Ihrer App korrekt angeben.

Wenn Sie Ihre App für die Veröffentlichung im Play Store vorbereiten, deklarieren Sie den Zugriff auf die Health Connect-Datentypen, die Ihre App verwendet. Andernfalls wird Nutzern möglicherweise eine Fehlermeldung angezeigt, dass Ihre App nicht auf die Health Connect-Datentypen zugreifen kann, da dafür eine spezielle Genehmigung erforderlich ist.