Datentypen

Google Fit bietet eine Reihe von Datentypen für Gesundheit und Fitness unter dem com.google-Namespace.

Datentypen definieren das Format der Werte innerhalb von Datenpunkten. Ein Datenpunkt kann Folgendes darstellen:

  • Eine sofortige Messung oder Beobachtung
  • Eine Zusammenfassung mit Statistiken über ein Zeitintervall

Google Fit definiert Datentypen für sofortige Beobachtungen und Datentypen für aggregierte Daten. Datenpunkte bestehen aus Werten für die Felder eines Datentyps und Zeitstempelinformationen. Punkte, die sofortige Beobachtungen darstellen, enthalten einen Zeitstempel, und Punkte eines aggregierten Datentyps enthalten auch die Startzeit für das Intervall.

In Google Fit kannst du auch neue Datentypen definieren.

Datentypgruppen

In Google Fit gibt es folgende Datentypen:

Öffentliche Datentypen
Standarddatentypen der Plattform haben das Präfix „com.google“. Beispiel: com.google.step_count.delta. Diese Datentypen erfassen sofortige Messwerte für Gesundheits- und Fitnessdaten, einschließlich Fitnessaktivitäten, Schlaf und Ernährung. Jede Anwendung kann die entsprechenden Berechtigungen zum Lesen und Schreiben dieser Datentypen anfordern, mit Ausnahme einiger Standortdatentypen, die nur von der Anwendung gelesen werden können, die sie geschrieben hat.

Weitere Informationen finden Sie unter:

Gesundheitsdatentypen
Von der Plattform bereitgestellte Datentypen, deren Zugriff aufgrund potenziell sensibler Daten eingeschränkt ist. Weitere Informationen findest du unter Gesundheitsdatentypen.
Aggregierte Datentypen
Datentypen zum Lesen von Gesundheits- und Fitnessdaten, die nach Zeit oder Aktivitätstyp zusammengefasst sind. Weitere Informationen finden Sie unter Aggregierte Datentypen.
Private benutzerdefinierte Datentypen
Benutzerdefinierte Datentypen, die durch eine bestimmte Anwendung definiert werden. Nur die Anwendung, die den Datentyp definiert, kann Daten dieses Typs lesen und schreiben. Weitere Informationen finden Sie unter Benutzerdefinierte Datentypen.

Datentypen verwenden

Android

Unter Android sind Datentypen als öffentliche Felder der Klasse DataType definiert. Wie Sie die Fitness APIs mit dem Datentyp aufrufen, hängt davon ab, was Sie erreichen möchten:

  • Verwenden Sie zum Aufzeichnen von Daten die Recording API, um für jeden Datentyp, den Sie aufzeichnen möchten, ein Abo zu erstellen.
  • Wenn Sie Daten lesen möchten, senden Sie über die history API für jeden Datentyp eine Leseanfrage.
  • Wenn Sie Verlaufsdaten aus der Vergangenheit einfügen möchten, senden Sie mit der Verlaufs API für jeden Datentyp eine Einfügeanfrage.
  • Verwenden Sie zum Erstellen von Sitzungen die Sessions API, um Daten mit Sitzungsmetadaten einzufügen oder aufzuzeichnen.

Zum Erstellen von Datenpunkten für ein sofortiges DataType-Objekt müssen Sie Werte im richtigen Format zuweisen. Das folgende Beispiel zeigt, wie du das Lebensmittel als String, den Essenstyp als Konstante aus der Klasse Field und Nährstoffgehalt als zugeordnete Gleitkommawerte zuweist.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

Nachdem Sie Datenpunkte in Ihrer App festgelegt haben, können Sie Verlaufsdaten mit der history API einfügen, lesen oder löschen.

REST

Die Ressource dataSources enthält den Datentyp (und eine Liste der Felder) für jede Datenquelle. Sie können einen dieser Datentypen beim Erstellen von Datenquellen angeben. Außerdem erhalten Sie den Namen des Datentyps und eine Liste seiner Felder, wenn Sie eine Datenquelle aus dem Fitnessspeicher abrufen.

Bei einer Datenquellendarstellung wird der Datentyp beispielsweise so angegeben:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

Autorisierungsbereiche

Autorisierungsbereiche umfassen Gruppen von Datentypen, für deren Zugriff ein Nutzer eine Anwendung autorisieren kann. Sie helfen Nutzenden zu verstehen, auf welche Arten von Daten eine App zugreifen möchte. Sie erleichtern es auch, Apps die Berechtigung zur Nutzung dieser Daten zu erteilen, da nicht jeder einzelne Datentyp genehmigt werden muss. Nutzer erteilen diese Berechtigungen, sobald sie deine App heruntergeladen haben.

Beispiel für den Zustimmungsbildschirm für OAuth-Bereiche
Abbildung 2: Zustimmungsbildschirm für OAuth-Bereiche.

Nachdem Sie Ihre Anwendung mit einer kleinen Anzahl von Nutzern getestet haben, müssen Sie vor dem Start der Anwendung eine Überprüfung anfordern, die auf den für diese Datentypen relevanten Bereichen basiert. Auf den oben verlinkten Seiten zu Datentypen erfahren Sie, welche Bereiche für den jeweiligen Datentyp gelten.

Wenn Ihre Anwendung beispielsweise Schreib- und Schreibblutdruckdaten lesen und schreiben muss, muss sie deklarieren, dass sie sowohl Lese- als auch Schreibvorgänge ausführt und beide Bereiche anfordert. Wenn lediglich Blutdruckdaten auf die Google Fit-Plattform geschrieben werden, muss nur der Schreibbereich angefordert werden.

Wählen Sie Datentypen verantwortungsvoll aus. Fordere nicht jeden Datentyp an, für den Fall, dass deine App ihn möglicherweise benötigt. Die angegebenen Typen bestimmen, für welche Bereiche der Nutzer eine Berechtigung erteilen kann. Fragen Sie nur nach den Datentypen, die Ihre Anwendung benötigt, damit Nutzer mit größerer Wahrscheinlichkeit Zugriff gewähren. Nutzer gewähren leichter Zugriff auf begrenzte, klar beschriebene Bereiche.

Prüfen Sie anhand der folgenden Tabelle, ob die Bereiche, auf die Ihre Anwendung Zugriff benötigt, vertrauliche oder eingeschränkte Bereiche sind (wodurch die auszuführenden Bestätigungsschritte bestimmt werden):

Bereich Beschreibung Kategorie
https://www.googleapis.com/auth/fitness.activity.read Aktivitätsdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.activity.write Aktivitätsdaten in die Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_glucose.read Blutzuckerdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_glucose.write Blutzuckerdaten auf die Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_pressure.read Blutdruckdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_pressure.write Blutdruckdaten auf der Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.body.read Körpermessdaten (Größe, Gewicht, Körperfettanteil) von der Google Fit-Plattform lesen Eingeschränkt
https://www.googleapis.com/auth/fitness.body.write Körpermessdaten auf die Google Fit-Plattform schreiben. Eingeschränkt
https://www.googleapis.com/auth/fitness.body_temperature.read Körpertemperaturdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.body_temperature.write Körpertemperaturdaten in die Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.heart_rate.read Herzfrequenzdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.heart_rate.write Herzfrequenzdaten in die Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.location.read Standortdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.location.write Standortdaten in die Google Fit-Plattform schreiben. Eingeschränkt
https://www.googleapis.com/auth/fitness.nutrition.read Ernährungsdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.nutrition.write Ernährungsdaten auf die Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Sauerstoffsättigungsdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Sauerstoffsättigungsdaten in die Google Fit-Plattform schreiben. Eingeschränkt
https://www.googleapis.com/auth/fitness.reproductive_health.read Zyklusdaten von der Google Fit-Plattform abrufen. Eingeschränkt
https://www.googleapis.com/auth/fitness.reproductive_health.write Zyklusdaten in die Google Fit-Plattform schreiben. Eingeschränkt
https://www.googleapis.com/auth/fitness.sleep.read Schlafdaten von der Google Fit-Plattform lesen Eingeschränkt
https://www.googleapis.com/auth/fitness.sleep.write Schlafdaten in die Google Fit-Plattform schreiben Eingeschränkt

Einer vorhandenen Anwendung neue Bereiche hinzufügen

Wenn Sie Ihre Anwendung aktualisieren, um einen neuen Bereich anzufordern, z. B. wenn Sie den neuen Schlaf- oder Herzfrequenzbereich hinzufügen oder einen Lesebereich hinzufügen, werden Nutzer aufgefordert, dass Ihre App Zugriff auf diese Bereiche anfordert, und sie können den Zugriff gewähren oder ablehnen.

Es empfiehlt sich, die Autorisierung von Nutzern für Ressourcen genau dann anzufordern, wenn Sie sie benötigen. Beachten Sie die Richtlinien zum Anfordern der inkrementellen Autorisierung.

Die Wahrscheinlichkeit, dass Nutzer Zugriff gewähren, ist höher, wenn sie verstehen, warum/wie Ihre App diese Daten verwendet:

  • Sie können einen Bildschirm hinzufügen, in dem Nutzer darauf hingewiesen werden, dass sie nach diesen Bereichen gefragt werden.
  • Erläutern Sie klar, warum Ihre Anwendung Zugriff auf diese Bereiche/Daten anfordert, damit Nutzer eine fundierte Entscheidung treffen können.

Weitere Informationen zu Best Practices zu App-Berechtigungen für Android