Si tu app necesita capturar información que aún 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 la
ConfigClient.createCustomDataType
método:
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:
- Llama a la API de REST para crear una fuente de datos nueva. Por ejemplo,
FlexibilityMeasure
Asigna un nombre único al tipo de datos que represente estrechamente 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, obtendrás un código HTTP 200 OK
.
el código de estado de respuesta. 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 a partir de una cadena
(com.packagename.appname.custom_data_type) en un objeto DataType
con el
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 un GET
a la API de REST.
Agrega 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 personalizado. Los datos deben tener todos los campos y formatos correctos especificados en tu tipo de datos personalizado.
Lee datos personalizados
Para leer datos personalizados, especifica la fuente de datos que creaste para tu cuando recuperas datos de la plataforma de Google Fit.