Health Connect-Datentypen planen und prüfen

Health Connect speichert und strukturiert Gesundheits- und Fitnessdaten. Es berücksichtigt auch, wie verschiedene Datentypen gemessen werden. Zu diesen Datentypen gehören sofort Herzfrequenzmessungen, die im Zeitverlauf ermittelte Schrittzahl und Schlafdaten in Sitzungen.

Du solltest zuerst wissen, welche Datentypen und Berechtigungen Health Connect bietet, damit du die Anforderungen deiner App planen kannst. Daher müssen Sie Ihre Datentypen überprüfen, bevor Sie Ihre Anforderungen festlegen können.

Datentypkategorien

Health Connect unterstützt Datentypen, die in den meisten Gesundheits- und Fitness-Apps verwendet werden, um so viel Vielfalt wie möglich zu bieten. Health Connect zielt darauf ab, eine umfassende Ansicht und Speicherung von Gesundheits- und Fitnessdaten zu ermöglichen. Diese Datentypen fallen in die folgenden Kategorien:

  • Aktivität:Alle Aktivitäten eines Nutzers werden erfasst. Sie kann Gesundheits- und Fitnessaktivitäten wie Laufen, Schwimmen und Schlafen umfassen.
  • Körpermaße:Hiermit werden allgemeine Körperdaten erfasst, z. B. das Gewicht eines Nutzers und sein Grundumsatz.
  • Zyklustracking:Hiermit werden Menstruationszyklen und zugehörige Datenpunkte erfasst, z. B. das binäre Ergebnis eines Ovulationstests.
  • Ernährung:Hiermit werden Datentypen für Flüssigkeitszufuhr und Ernährung erfasst. Die erste gibt an, wie viel Wasser ein Nutzer in einem einzelnen Getränk konsumiert. Letzteres umfasst optionale Felder wie „Kalorien“, „Zucker“ und „Magnesium“.
  • Schlaf:Damit werden Intervalldaten zur Länge und Art des Schlafs des Nutzers erfasst.
  • Vitals (Vitals): Enthält wichtige Informationen zum Allgemeinzustand des Nutzers. Sie umfassen Daten wie Körpertemperatur, Blutzucker, Blutdruck und Sauerstoffsättigung im Blut.

Datentypformat

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

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

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

Zusätzliche Datenattribute

Daten in der Health Connect API enthalten auch Metadatenattribute, die in der folgenden Liste beschrieben werden:

  • Health Connect-ID:Jedem Datenpunkt wird bei der Erstellung eine eindeutige Kennung (UID) zugewiesen. Dies ist nützlich für Standard-Lese- und Schreibvorgänge. Weitere Informationen finden Sie unter Health Connect-ID.
  • Zeit der letzten Änderung:Dadurch wird der Zeitstempel für die letzte Instanz angegeben, für die ein Eintrag aktualisiert wurde. Sie wird bei der ersten Erstellung des Datensatzes oder bei jeder Aktualisierung automatisch generiert.
  • Datenquelle:Health Connect speichert Informationen zu der 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 zu dem Gerät, von dem die Daten stammen. Sie enthält den Hersteller und das Modell des Geräts, den Sie manuell eingeben.
  • Client-ID:Health Connect stellt Client-IDs bereit, damit Client-Apps mit ihren eigenen IDs auf Daten verweisen können. Dies hilft bei der Konfliktlösung und vereinfacht die Synchronisierung. Sie wird dem Eintrag manuell übergeben.
  • Version der Clientdaten:Zusammen mit der Client-ID bietet Health Connect eine Versionsverwaltung, die Ihnen das Nachverfolgen von Änderungen während der Datensynchronisierung erleichtert. Diese wird manuell im Datensatz angegeben.
  • Aufzeichnungsmethode:Mit Health Connect können Sie nachvollziehen, wie Daten aufgezeichnet werden. Zu diesen Methoden gehören Anwendungen, die Daten passiv (automatisch) erfassen, und Nutzer, die Daten aktiv oder manuell aufzeichnen.

Health Connect-ID

Health Connect weist neu eingefügten Datenobjekten eindeutige Kennungen (UIDs) zu, die Datenobjekte identifizieren und von anderen unterscheiden. Health Connect-IDs sind in Lese- oder Schreibanfragen hilfreich. Health Connect-IDs sind nicht mit Client-IDs identisch. Eine Client-App weist Client-IDs zu, während Health Connect ausschließlich Health Connect-IDs zuweist.

Beachten Sie die folgenden Hinweise bei der Arbeit mit Health Connect-IDs:

  • Sitzungen haben eine einzelne Health Connect-ID, aber Daten innerhalb von Sitzungen haben ihre eigene Health Connect-ID.
  • Health Connect-IDs sind nicht mit Zeitstempeln verknüpft.
  • In einigen Anwendungsfällen muss während eines Workflows möglicherweise eine bestimmte Health Connect-ID gespeichert werden. Beispielsweise ist eine bestimmte ID erforderlich, um den gerade protokollierten Dateneintrag abzurufen und einem Nutzer anzuzeigen.

Zeit in Health Connect

Alle in Health Connect geschriebenen Daten müssen die Zonen-Offset-Informationen angeben. Wenn Sie den Zonen-Offset angeben, können Apps die Daten lesen, um sie in Bürgerzeit darzustellen. Zivile Zeit ist die Ortszeit, die für den Nutzer relevant ist, jedoch nicht unbedingt in koordinierter Weltzeit (UTC).

In seltenen Fällen kann es vorkommen, dass der Zonenversatz nicht verfügbar ist. In diesem Fall legt Health Connect den Zonenversatz in Android 14 (API-Level 34) anhand der Standardzeitzone 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 zum Zonenoffset anzugeben. Dies muss nach Möglichkeit vermieden werden.

Zeit- und Zoneneinstellung

Wenn Sie beim Schreiben von Daten Zonen-Offset-Informationen angeben, werden beim Lesen von Daten in Health Connect Zeitzoneninformationen bereitgestellt. Dies kann jedoch in bestimmten Situationen fehlschlagen, z. B. wenn kein Zonenoffset angegeben ist. Ihre Anwendung muss darauf vorbereitet sein, mit beiden Arten von Daten umzugehen, und zwar in einer Weise, die für Ihre speziellen Umstände sinnvoll ist.

Berechtigungen

Bevor du Berechtigungen anfragen kannst, muss deine App diese zuerst im Manifest deklarieren. In den folgenden Tabellen finden Sie eine vollständige Zuordnung der Datentypen und ihrer Berechtigungen.

Für 1.0.0-alpha10 und höher

Klassentyp aufzeichnen Erklärung zu Lese- und Schreibberechtigungen
Aktiv verbrannte Kalorien android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
GrundKörpertemperatur android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE
Grundumsatz 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
Körpertemperatur android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE
Körperwassermasse android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS
Knochenmasse 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
Radfahren, Trittfrequenz android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
Strecke android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE
Gewonnene Höhe android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
Trainingseinheit android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
Bewältigte Stockwerke android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
Herzfrequenz android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE
HerzfrequenzvariabilitätRmssd 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
Zwischenblutungen 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
Ovulationstest 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
Stromversorgung android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
Atemfrequenz android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE
Ruheherzfrequenz android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE
Sexuelle Aktivitäten android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY
SleepSession android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP
Geschwindigkeit android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
Schrittfrequenz android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
Schritte android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
Summe verbrannte Kalorien 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
Rollstuhlschübe android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

Für 1.0.0-alpha09 und niedriger

Klassentyp aufzeichnen Erklärung zu Lese- und Schreibberechtigungen
Aktiv verbrannte Kalorien androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
GrundKörpertemperatur androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE
Grundumsatz 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
Körpertemperatur androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE
Körperwassermasse androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE
Knochenmasse androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE
CervicalMucus androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE
Radfahren, Trittfrequenz androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE
Strecke androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
Gewonnene Höhe androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
Trainingseinheit androidx.health.permission.ÜbungSession.READ
androidx.health.permission.TrainingSession.WRITE
Bewältigte Stockwerke androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE
Herzfrequenz androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
HerzfrequenzvariabilitätRmssd androidx.health.permission.HeartRateVariabilityRmssd.READ
androidx.health.permission.HeartRateVariabilityRmssd.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
Zwischenblutungen 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
Ovulationstest 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
Atemfrequenz androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE
Ruheherzfrequenz androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE
Sexuelle Aktivitäten 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
Schrittfrequenz androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE
Schritte androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
Summe verbrannte Kalorien 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
Rollstuhlschübe 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.

Bevor du deine App in den Play Store hochlädst, solltest du die Liste der Datentypen und Berechtigungen prüfen, die für deine App erforderlich sind. So können Sie die Datennutzung Ihrer App genau angeben.

Nachdem Sie Ihre App im Play Store veröffentlicht haben, erhalten Sie möglicherweise eine Fehlermeldung, dass Ihre App nicht auf die Health Connect-Datentypen zugreifen kann, da diese eine Sondergenehmigung erfordern. In diesem Fall müssen Sie den Zugriff auf den Datentyp über das Formular zur Erklärung von Entwicklern beantragen. Weitere Informationen zu diesem Prozess findest du unter Zugriff auf Health Connect-Datentypen anfordern.