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 TrainingstypEXERCISE_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 TrainingstypEXERCISE_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.