Benutzerdefinierte Datentypen

Wenn Ihre App Informationen erfassen muss, die noch nicht von einem der vorhandenen Datentypen auf der Google Fit-Plattform abgedeckt werden, können Sie einen benutzerdefinierten Datentyp erstellen.

Benutzerdefinierte Datentypen erstellen

Benutzerdefinierten Datentyp erstellen oder angeben, um benutzerdefinierte Daten zu erfassen. Achten Sie beim Erstellen benutzerdefinierter Datentypen auf Folgendes:

  • Der Datentypname stellt die zugrunde liegenden Daten genau dar.
  • Das Präfix des Datentypnamens entspricht dem Paketnamen Ihrer App.

Android

Verwenden Sie die Methode ConfigClient.createCustomDataType, um zum ersten Mal einen benutzerdefinierten Datentyp zu erstellen:

val request = DataTypeCreateRequest.Builder()
    // The prefix of your data type name must match your app's package name
    .setName("com.packagename.appname.custom_data_type") // Add some custom fields, both int and float
    .addField("field1", Field.FORMAT_INT32)
    .addField("field2", Field.FORMAT_FLOAT)
    // Add some common fields
    .addField(Field.FIELD_ACTIVITY)
    .build()

Fitness.getConfigClient(this, account)
    .createCustomDataType(request)
    .addOnSuccessListener { dataType ->
        // Use this custom data type to insert data into your app.
        Log.d(TAG, "Created data type: ${dataType.name}")
    }

REST

Datentypen sind ein Attribut von Datenquellen in der REST API. Wenn Sie benutzerdefinierte Daten erfassen möchten, müssen Sie eine Datenquelle erstellen und dann den Datentyp angeben:

  1. Rufen Sie die REST API auf, um eine neue Datenquelle zu erstellen. Beispiel: FlexibilityMeasure.
  2. Geben Sie dem Datentyp einen eindeutigen Namen, der die zu erfassenden Daten gut beschreibt.

  3. Geben Sie die Felder des Datentyps und ihre Formate an.

HTTP-Methode

POST

Anfrage-URL

https://www.googleapis.com/fitness/v1/users/me/dataSources

Anfragetext

{
  "dataStreamName": "FlexibilityMeasure",
  "type": "raw",
  "application": {
    "detailsUrl": "http://recoveryapps.com",
    "name": "Stretch Flex",
    "version": "1"
  },
  "dataType": {
    "name": "com.recoveryapps.stretchflex.flexibility",
    "field": [
     {
      "name": "ankle_range_degrees",
      "format": "integer"
     },
     {
      "name": "wrist_range_degrees",
      "format": "integer",
      "optional": true
     }
    ]
   }
}

Antwort

Wenn die Datenquelle erstellt wurde, erhalten Sie den HTTP-Antwortstatuscode 200 OK. Der Antworttext enthält eine JSON-Darstellung der Datenquelle, einschließlich eines datasource.dataStreamId-Attributs. Verwenden Sie diese ID als dataSourceId, um Daten hinzuzufügen.

Benutzerdefinierte Datentypen verwenden

Android

Konvertieren Sie den Namen des benutzerdefinierten Datentyps aus einem String (com.packagename.appname.custom_data_type) in ein DataType-Objekt mit der Methode ConfigClient.readDataType. Mit dem zurückgegebenen Objekt können Sie benutzerdefinierte Daten einfügen und lesen.

Fitness.getConfigClient(this, account)
    .readDataType("com.packagename.appname.custom_data_type")
    .addOnSuccessListener { dataType ->
        // Use this custom data type to insert data into your app.
        Log.d(TAG, "Retrieved data type: ${dataType.name}")
    }

REST

Wenn Sie benutzerdefinierte Daten mit Ihren benutzerdefinierten Datentypen hinzufügen oder lesen möchten, benötigen Sie deren Datenquellen. Wenn Sie die Datenquellen eines benutzerdefinierten Datentyps prüfen möchten, senden Sie eine GET-Anfrage an die REST API.

Benutzerdefinierte Daten hinzufügen

Erstellen Sie zum Einfügen benutzerdefinierter Daten ein Dataset mit neuen Datenpunkten. Geben Sie die Datenquelle an, die Sie für Ihren benutzerdefinierten Datentyp erstellt haben. Die Datenpunkte müssen alle richtigen Felder und Formate haben, die in Ihrem benutzerdefinierten Datentyp angegeben sind.

Benutzerdefinierte Daten lesen

Wenn Sie benutzerdefinierte Daten lesen möchten, geben Sie die Datenquelle an, die Sie für Ihren benutzerdefinierten Datentyp erstellt haben, wenn Sie Datenpunkte von der Google Fit-Plattform abrufen.