Benutzerdefinierte Datentypen

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

Benutzerdefinierte Datentypen erstellen

Erstellen oder geben Sie einen benutzerdefinierten Datentyp an, um benutzerdefinierte Daten zu erfassen. Achten Sie beim Erstellen benutzerdefinierter Datentypen auf Folgendes:

  • Der Name des Datentyps gibt die zugrunde liegenden Daten genau wieder.
  • Das Präfix des Datentypnamens stimmt mit dem Paketnamen Ihrer App überein.

Android

Verwenden Sie die ConfigClient.createCustomDataType Methode, 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 in der REST API eine Eigenschaft von Datenquellen. 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 erfassten Daten genau wiedergibt.

  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 Ihre Datenquelle erfolgreich erstellt wurde, erhalten Sie den 200 OK HTTP Antwortstatuscode. Der Antworttext enthält eine JSON-Darstellung der Datenquelle, einschließlich der Eigenschaft datasource.dataStreamId. Verwenden Sie diese ID als dataSourceId, um Daten hinzuzufügen.

Benutzerdefinierte Datentypen verwenden

Android

Konvertieren Sie den Namen Ihres benutzerdefinierten Datentyps mit der ConfigClient.readDataType Methode von einem String (com.packagename.appname.custom_data_type) in ein DataType Objekt. Verwenden Sie das zurückgegebene Objekt, um einzufügen und zu lesen benutzerdefinierte Daten.

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 die entsprechenden Datenquellen. Senden Sie eine GET Anfrage an die REST API, um die Datenquellen eines benutzerdefinierten Datentyps zu prüfen.

Benutzerdefinierte Daten hinzufügen

Erstellen Sie ein Dataset mit neuen Datenpunkten, um benutzerdefinierte Daten einzufügen. Geben Sie die Datenquelle an, die Sie für Ihren benutzerdefinierten Datentyp erstellt haben. Die Datenpunkte müssen alle korrekten 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.