Tipos de datos personalizados

Si tu app necesita capturar información que no esté cubierta por uno de los tipos de datos existentes en la plataforma de Google Fit, puedes crear un tipo de datos personalizado.

Crea tipos de datos personalizados

Crea o especifica un tipo de datos personalizado para capturar datos personalizados. Cuando crees tipos de datos personalizados, asegúrate de lo siguiente:

  • El nombre del tipo de datos representa con precisión los datos subyacentes.
  • El prefijo del nombre del tipo de datos coincide con el nombre del paquete de tu app.

Android

Para crear un tipo de datos personalizado por primera vez, usa el método 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

Los tipos de datos son una propiedad de las fuentes de datos en la API de REST. Para capturar datos personalizados, debes crear una fuente de datos y, luego, especificar el tipo de datos:

  1. Llama a la API de REST para crear una nueva fuente de datos. Por ejemplo, FlexibilityMeasure
  2. Asigna un nombre único al tipo de datos que represente con precisión los datos que captura.

    .
  3. Especifica los campos del tipo de datos y sus formatos.

Método HTTP

POST

Request URL (URL de solicitud)

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

Cuerpo de la solicitud

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

Respuesta

Si la fuente de datos se creó de forma correcta, recibirás un código de estado de respuesta HTTP 200 OK. El cuerpo de la respuesta contiene una representación JSON de la fuente de datos, incluida una propiedad datasource.dataStreamId. Usa este ID como el dataSourceId para agregar datos.

Usa tipos de datos personalizados

Android

Convierte el nombre de tu tipo de datos personalizados de una string (com.packagename.appname.custom_data_type) en un objeto DataType con el método ConfigClient.readDataType. Usa el objeto que se muestra para insertar y leer datos personalizados.

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

Para agregar o leer datos personalizados con tus tipos de datos personalizados, necesitas sus fuentes de datos. Para verificar las fuentes de datos de un tipo personalizado, envía una solicitud GET a la API de REST.

Cómo agregar datos personalizados

Para insertar datos personalizados, crea un conjunto de datos con datos nuevos. Especifica la fuente de datos que creaste para tu tipo de datos personalizados. Los datos deben tener todos los campos y formatos correctos especificados en tu tipo de datos personalizados.

Lee datos personalizados

A fin de leer datos personalizados, especifica la fuente de datos que creaste para tu tipo de datos personalizado cuando recuperes datos de la plataforma de Google Fit.