Tipos de datos personalizados

Si tu app necesita capturar información que aún no se incluye en uno de los tipos de datos existentes en la plataforma de Google Fit, puedes crear un tipo de datos personalizado.

Cómo crear 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

En la API de REST, los tipos de datos son una propiedad de las fuentes de datos. 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 al tipo de datos un nombre único 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 tu fuente de datos se creó correctamente, 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 dataSourceId para agregar datos.

Usa tipos de datos personalizados

Android

Convierte el nombre de tu tipo de datos personalizado de una cadena (com.packagename.appname.custom_data_type) en un objeto DataType con el método ConfigClient.readDataType. Usa el objeto devuelto 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 de datos 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 nuevos puntos de datos. Especifica la fuente de datos que creaste para tu tipo de datos personalizado. Los puntos de datos deben tener todos los campos y formatos correctos especificados en tu tipo de datos personalizado.

Lectura de datos personalizados

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