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:
- Llama a la API de REST para crear una nueva fuente de datos. Por ejemplo,
FlexibilityMeasure Asigna al tipo de datos un nombre único que represente con precisión los datos que captura.
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.