Tipos de datos

Google Fit proporciona un conjunto de tipos de datos de salud y bienestar en el espacio de nombres com.google.

Los tipos de datos definen el formato de los valores dentro de los datos. Un punto de datos puede representar lo siguiente:

  • Una observación o lectura instantánea
  • Agregación con estadísticas durante un intervalo de tiempo

Google Fit define los tipos de datos de las observaciones instantáneas y los de datos agregados. Los datos constan de valores para los campos de un tipo de datos y la información de marca de tiempo. Los puntos que representan observaciones instantáneas incluyen una marca de tiempo, y los puntos de un tipo de datos agregados también incluyen la hora de inicio del intervalo.

Google Fit también te permite definir nuevos tipos de datos.

Grupos de tipos de datos

Google Fit tiene los siguientes tipos de datos:

Tipos de datos públicos
Los tipos de datos estándar que proporciona la plataforma tienen el prefijo “com.google”. Por ejemplo, com.google.step_count.delta. Estos tipos de datos capturan lecturas instantáneas de los datos de salud y bienestar, como la actividad física, el sueño y la nutrición. Cualquier app puede solicitar los permisos relevantes para leer y escribir en estos tipos de datos, excepto algunos tipos de datos de ubicación que solo puede leer la app que los escribió.

Para obtener más información, consulta:

Tipos de datos de salud
Tipos de datos que proporciona la plataforma y que tienen acceso restringido debido a datos potencialmente sensibles Para obtener más información, consulta Tipos de datos de Health.
Tipos de datos agregados
Tipos de datos para leer información de salud y bienestar agregada por hora o tipo de actividad. Para obtener más información, consulta Tipos de datos agregados.
Tipos de datos privados personalizados
Tipos de datos personalizados definidos por una app específica. Solo la app que define el tipo de datos puede leer y escribir datos de este tipo. Para obtener más información, consulta Tipos de datos personalizados.

Usa tipos de datos

Android

En Android, los tipos de datos se definen como campos públicos de la clase DataType. La manera en la que invoques las APIs de Fitness con el tipo de datos depende de lo que quieras lograr:

  • Si deseas registrar datos, usa la API de Recording para crear una suscripción para cada tipo de datos que desees registrar.
  • Si quieres leer los datos, usa la API de History para enviar una solicitud de lectura para cada tipo de datos.
  • Si deseas insertar datos históricos del pasado, usa la API de History para enviar una solicitud de inserción por cada tipo de datos.
  • Para crear sesiones, usa la API de Sessions para insertar o registrar datos con metadatos de sesión.

Si deseas crear datos para un objeto DataType instantáneo, asigna valores con el formato correcto. En el siguiente ejemplo, se muestra cómo asignar el alimento como una cadena, el tipo de comida como una constante de la clase Field y el contenido nutriente como valores flotantes asignados.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

Después de configurar los datos en tu app, puedes insertar, leer o borrar datos históricos con la API de History.

REST

El recurso dataSources incluye el tipo de datos (y una lista de sus campos) para cada fuente de datos. Puedes especificar uno de estos tipos de datos cuando creas fuentes de datos y obtener el nombre del tipo de datos y una lista de sus campos cuando recuperas una fuente de datos de la tienda de entrenamiento.

Por ejemplo, una representación de fuente de datos especifica su tipo de datos de la siguiente manera:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

Permisos de autorización

Los permisos de autorización abarcan grupos de tipos de datos a los que un usuario puede autorizar el acceso de una app. Ayudan a los usuarios a comprender a qué tipo de datos quiere acceder una app. También facilitan la tarea de otorgar permiso a las apps para usar esos datos, ya que no tienen que aprobar cada tipo de datos individual. Los usuarios otorgan estos permisos una vez que descargan la app.

Ejemplo de la pantalla de consentimiento de los permisos de OAuth
Figura 2: Pantalla de consentimiento de los permisos de OAuth.

Después de probar tu app con una cantidad pequeña de usuarios, antes de iniciarla debes solicitar una verificación según los alcances relevantes para esos tipos de datos. Lee las páginas de tipos de datos vinculadas anteriormente para comprender qué alcances se aplican a cada tipo de datos.

Por ejemplo, si tu app necesita realizar operaciones de lectura y escritura de presión arterial, debe declarar que realiza operaciones de lectura y escritura, y solicitar ambos alcances. Si solo escribe datos de presión arterial en la plataforma de Google Fit, solo necesita solicitar el alcance de escritura.

Elegir los tipos de datos con responsabilidad No solicites todos los tipos de datos en caso de que tu app lo necesite. Los tipos especificados determinan para qué permisos se le solicita al usuario que otorgue permiso. Solo solicita los tipos de datos que necesita tu app para que los usuarios tengan más probabilidades de otorgar acceso. Los usuarios otorgan acceso con mayor facilidad a permisos limitados y claramente descritos.

Usa esta tabla para comprobar si los permisos a los que tu app necesita acceder son sensibles o restringidos (lo que determina los pasos de verificación que deberás seguir):

Alcance Descripción Categoría
https://www.googleapis.com/auth/fitness.activity.read Leer los datos de actividad de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.activity.write Cómo escribir datos de actividad en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.blood_glucose.read Leer los datos de glucemia de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.blood_glucose.write Escribir los datos de glucemia en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.blood_pressure.read Leer los datos de presión arterial de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.blood_pressure.write Escribir los datos de presión arterial en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.body.read Leer los datos de medición corporal (altura, peso, porcentaje de grasa corporal) desde la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.body.write Escribir los datos de mediciones corporales en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.body_temperature.read Leer los datos de temperatura corporal de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.body_temperature.write Escribir los datos de temperatura corporal en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.heart_rate.read Leer los datos de frecuencia cardíaca en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.heart_rate.write Escribir los datos de frecuencia cardíaca en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.location.read Leer los datos de ubicación de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.location.write Escribir los datos de ubicación en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.nutrition.read Leer los datos de nutrición de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.nutrition.write Escribir los datos de nutrición en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Leer los datos sobre saturación de oxígeno de la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Escribir los datos sobre saturación de oxígeno en la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.reproductive_health.read Leer los datos sobre salud reproductiva de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.reproductive_health.write Escribir los datos sobre salud reproductiva en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.sleep.read Leer los datos de sueño de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.sleep.write Escribir los datos de sueño en la plataforma de Google Fit Restringido

Cómo agregar alcances nuevos a una app existente

Cuando actualices tu app para solicitar un alcance nuevo (por ejemplo, si agregas los nuevos alcances de sueño o frecuencia cardíaca, o bien un alcance de lectura), se les indicará a los usuarios que la app solicita acceso a estos permisos y pueden optar por otorgar o rechazar el acceso.

Se recomienda solicitar la autorización de los usuarios para los recursos en el momento en que los necesitas. Sigue los lineamientos para solicitar autorización incremental.

Es más probable que los usuarios otorguen acceso si comprenden por qué o cómo usa tu app estos datos:

  • Considera agregar una pantalla que informe a los usuarios que se les pedirán estos permisos o que les informe sobre ellos.
  • Explica con claridad por qué tu app solicita acceso a estos permisos o datos para que los usuarios puedan tomar una decisión fundamentada.

Obtén más información sobre las prácticas recomendadas en torno a los permisos de las apps para Android.