Types de données personnalisés

Si votre application doit collecter des informations qui ne sont pas déjà couvertes par l'un des types de données existants sur la plate-forme Google Fit, vous pouvez créer un type de données personnalisé.

Créer des types de données personnalisés

Créez ou spécifiez un type de données personnalisé pour capturer des données personnalisées. Lorsque vous créez types de données personnalisés, vérifiez les points suivants:

  • Le nom du type de données représente précisément les données sous-jacentes.
  • Le préfixe du nom du type de données correspond au nom du package de votre application.

Android

Si vous créez un type de données personnalisé pour la première fois, utilisez la méthode ConfigClient.createCustomDataType méthode:

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

Dans l'API REST, les types de données sont une propriété des sources de données. Pour capturer des données personnalisées, vous devez créer une source de données, puis spécifier le type de données:

  1. Appelez l'API REST pour créer une source de données. Exemple :FlexibilityMeasure
  2. Attribuez au type de données un nom unique qui représente fidèlement les données qu'il collecte.

  3. Spécifiez les champs du type de données et leurs formats.

Méthode HTTP

POST

URL de la requête

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

Corps de la requête

{
  "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
     }
    ]
   }
}

Réponse

Si votre source de données a bien été créée, une erreur HTTP 200 OK s'affiche. code d'état de la réponse. Le corps de la réponse contient une représentation JSON de la source de données, y compris une propriété datasource.dataStreamId. Utiliser cet ID comme dataSourceId pour ajouter des données.

Utiliser des types de données personnalisés

Android

Convertir le nom de votre type de données personnalisé à partir d'une chaîne (com.packagename.appname.custom_data_type) dans un objet DataType à l'aide de la méthode ConfigClient.readDataType. Utiliser l'objet renvoyé pour insert et lire des données personnalisées.

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

Pour ajouter ou lire des données personnalisées à l'aide de vos types de données personnalisés, vous avez besoin de leurs données sources. Pour vérifier les sources de données d'un type de données personnalisé, envoyez une GET à l'API REST.

Ajouter des données personnalisées

Pour insérer des données personnalisées, créez un ensemble de données avec de nouveaux points de données. Spécifiez le paramètre source de données que vous avez créée pour votre type de données personnalisé. Les points de données doivent contiennent tous les champs et formats corrects spécifiés dans votre type de données personnalisé.

Lire des données personnalisées

Pour lire des données personnalisées, spécifiez la source de données que vous avez créée pour votre type de données lorsque vous récupérez des points de données à partir de la plate-forme Google Fit.