Types de données personnalisés

Si votre application doit capturer 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 des types de données personnalisés, assurez-vous que:

  • 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

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

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

Les types de données sont une propriété des sources de données, dans l'API REST. 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. Donnez un nom unique au type de données, afin qu'il corresponde étroitement aux données capturées.

  3. Spécifiez les champs du type de données et leur format.

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

Response (Réponse)

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

Utiliser des types de données personnalisés

Android

Convertissez le nom de votre type de données personnalisé d'une chaîne (com.packagename.appname.custom_data_type) en objet DataType à l'aide de la méthode ConfigClient.readDataType. Utilisez l'objet renvoyé pour insérer 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 sources de données. Pour vérifier les sources de données d'un type de données personnalisé, envoyez une requête 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 la source de données que vous avez créée pour votre type de données personnalisé. Les points de données doivent disposer de tous les champs et formats 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 personnalisé lorsque vous récupérez des points de données depuis la plate-forme Google Fit.