Datentypen

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

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

  • Sofortiges Lesen oder Beobachten
  • 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. Punkte eines aggregierten Datentyps enthalten auch die Startzeit für das Intervall.

In Google Fit können Sie auch neue Datentypen definieren.

Datentypgruppen

Google Fit bietet folgende Datentypen:

Öffentliche Datentypen
Standarddatentypen von der Plattform haben das Präfix „com.google“. Beispiel: com.google.step_count.delta. Diese Datentypen erfassen Sofortmesswerte für Gesundheits- und Fitnessdaten, einschließlich Fitnessaktivitäten, Schlaf und Ernährung. Jede App kann die entsprechenden Lese- und Schreibberechtigungen für diese Datentypen anfordern, mit Ausnahme einiger Standortdatendaten, die nur von der App gelesen werden können, die sie geschrieben hat.

Weitere Informationen:

Arten von Gesundheitsdaten
Datentypen der Plattform, die aufgrund potenziell sensibler Daten eingeschränkten Zugriff haben. Weitere Informationen finden Sie unter Datentypen von Gesundheitsdaten.
Aggregierte Datentypen
Datentypen zum Lesen von Gesundheits- und Fitnessinformationen, aggregiert nach Zeit oder Aktivitätstyp. Weitere Informationen finden Sie unter Aggregierte Datentypen.
Private benutzerdefinierte Datentypen
Benutzerdefinierte Datentypen, die von einer bestimmten Anwendung definiert werden. Nur die App, 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:

  • Erstellen Sie mit der Recording API ein Abo für jeden Datentyp, den Sie aufzeichnen möchten, um Daten zu erfassen.
  • Verwenden Sie zum Lesen von Daten die History API, um eine Leseanfrage für jeden Datentyp zu senden.
  • Wenn Sie Verlaufsdaten aus der Vergangenheit einfügen möchten, verwenden Sie für jeden Datentyp die History API.
  • Verwenden Sie zum Erstellen von Sitzungen die Sessions API, um Daten mit Sitzungsmetadaten einzufügen oder aufzuzeichnen.

Weisen Sie Werte mit dem richtigen Format zu, um Datenpunkte für ein sofortiges DataType-Objekt zu erstellen. Im folgenden Beispiel wird gezeigt, wie Sie die Speise als String, die Mahlzeit als Konstante aus der Klasse Field und die Nährstoffe als zugeordnete Gleitkommawerte zuweisen.

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 Anwendung 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 seiner Felder) für jede Datenquelle. Sie können einen dieser Datentypen angeben, wenn Sie Datenquellen erstellen. Sie können den Namen des Datentyps und eine Liste seiner Felder abrufen, wenn Sie eine Datenquelle aus dem Fitnessspeicher abrufen.

Beispiel für die Darstellung einer Datenquelle:

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

Autorisierungsbereiche

Autorisierungsbereiche decken Gruppen von Datentypen ab, auf die ein Nutzer eine App für den Zugriff autorisieren kann. Nutzer können so besser nachvollziehen, auf welche Daten eine App zugreifen möchte. Außerdem wird es dadurch einfacher, Apps die Berechtigung zur Verwendung dieser Daten zu erteilen, da nicht jeder einzelne Datentyp genehmigt werden muss. Nutzer erteilen diese Berechtigungen, nachdem sie Ihre App heruntergeladen haben.

Beispiel für den Zustimmungsbildschirm für den OAuth-Bereich
Abbildung 2: Zustimmungsbildschirm für den OAuth-Bereich

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 den Bereichen entspricht, die für diese Datentypen relevant sind. Lesen Sie die oben verlinkten Datentypseiten, um zu erfahren, welche Bereiche für jeden Datentyp gelten.

Wenn Ihre Anwendung z. B. Blutdruck lesen und schreiben muss, muss sie deklarieren, dass sie sowohl Lese- als auch Schreibvorgänge durchführt und beide Bereiche anfordert. Wenn nur Blutdruckdaten auf der Google Fit-Plattform geschrieben werden, muss nur der Schreibbereich angefordert werden.

Wählen Sie verantwortungsbewusst Datentypen aus. Fordern Sie nicht jeden Datentyp an, für den Fall, dass Ihre Anwendung sie benötigt. Die angegebenen Typen bestimmen, für welche Bereiche der Nutzer die Berechtigung erhält. Fragen Sie nur nach den von Ihrer Anwendung benötigten Datentypen, damit Nutzer eher Zugriff gewähren. Nutzer gewähren leichter eingeschränkten, klar beschriebenen Bereichen.

Anhand der folgenden Tabelle können Sie prüfen, ob die Bereiche, auf die Ihre App zugreifen muss, vertraulich oder eingeschränkt sind (was die Überprüfungsschritte bestimmt, die Sie ausführen müssen):

Umfang Beschreibung Kategorie
https://www.googleapis.com/auth/fitness.activity.read Aktivitätsdaten aus der Google Fit-Plattform lesen. Eingeschränkt
https://www.googleapis.com/auth/fitness.activity.write Aktivitätsdaten auf der Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_glucose.read Blutzuckerdaten von der Google Fit-Plattform lesen. Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_glucose.write Blutzuckerdaten auf der Google Fit-Plattform schreiben. Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_pressure.read Blutdruckdaten aus der Google Fit-Plattform lesen. Eingeschränkt
https://www.googleapis.com/auth/fitness.blood_pressure.write Blutdruckdaten in die 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 lesen. Eingeschränkt
https://www.googleapis.com/auth/fitness.body_temperature.write Daten zur Körpertemperatur in die Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.heart_rate.read Herzfrequenzdaten auf der Google Fit-Plattform lesen. Eingeschränkt
https://www.googleapis.com/auth/fitness.heart_rate.write Herzfrequenzdaten auf der Google Fit-Plattform schreiben. Eingeschränkt
https://www.googleapis.com/auth/fitness.location.read Standortdaten von der Google Fit-Plattform auslesen. 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 auf der Google Fit-Plattform lesen. Eingeschränkt
https://www.googleapis.com/auth/fitness.nutrition.write Ernährungsdaten in die Google Fit-Plattform schreiben Eingeschränkt
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Sauerstoffsättigungsdaten aus der Google Fit-Plattform lesen. 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 lesen. Eingeschränkt
https://www.googleapis.com/auth/fitness.reproductive_health.write Zyklusdaten auf der 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 auf der Google Fit-Plattform schreiben. Eingeschränkt

Einer vorhandenen App neue Bereiche hinzufügen

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

Es hat sich bewährt, von Nutzern zur richtigen Zeit eine Autorisierung für Ressourcen anzufordern. Folgen Sie den Richtlinien zum Anfordern einer inkrementellen Autorisierung.

Die Wahrscheinlichkeit, dass Nutzer Zugriff gewähren, ist größer, wenn sie verstehen, wie/wie deine App diese Daten verwendet:

  • Sie können einen Bildschirm hinzufügen, mit dem Nutzer gewarnt bzw. darüber informiert werden, dass sie für diese Bereiche aufgefordert werden.
  • Erläutern Sie klar, warum Ihre App Zugriff auf diese Bereiche/Daten anfordert, damit Nutzer eine fundierte Entscheidung treffen können.

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