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 dato puede representar lo siguiente:

  • Observación o lectura instantáneas
  • Un agregado con estadísticas durante un intervalo de tiempo

Google Fit define tipos de datos para observaciones instantáneas y tipos de datos para datos agregados. Los datos consisten en valores para los campos de un tipo de datos y de información de marcas 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 de entrenamiento, el sueño y la nutrición. Cualquier app puede solicitar los permisos relevantes para leer y escribir a 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 salud.
Tipos de datos agregados
Tipos de datos para leer información de salud agregada por tiempo o tipo de actividad. Para obtener más información, consulta Tipos de datos agregados.
Tipos de datos personalizados privados
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 forma en que invocas las API de Fitness con el tipo de datos depende de lo que quieras lograr:

  • Si deseas registrar datos, usa la API de grabación a fin de crear una suscripción para cada tipo de datos que desees registrar.
  • A fin de leer datos, usa la API de History a fin de enviar una solicitud de lectura para cada tipo de datos.
  • Si deseas insertar datos históricos anteriores, usa la API de History a fin de enviar una solicitud de inserción para cada tipo de datos.
  • Si quieres crear sesiones, usa la API de sesiones para insertar o registrar datos con metadatos de sesiones.

A fin de crear puntos de datos para un objeto DataType instancial, asigna valores con el formato correcto. En el siguiente ejemplo, se muestra cómo asignar el elemento de comida como una string, el tipo de comida como una constante de la clase Field y el contenido nutricional 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 de tu app, puedes insertar, leer o borrar los 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 puedes obtener el nombre del tipo de datos y una lista de sus campos cuando recuperas una fuente de datos del almacén 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 el usuario puede autorizar el acceso de una app. Ayudan a los usuarios a comprender a qué tipos de datos quiere acceder una app. También facilitan el uso de esos datos para que las apps no tengan que aprobar cada tipo de datos individual. Los usuarios otorgan estos permisos una vez que descargan tu 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 la verificación según los permisos 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 leer y escribir presión arterial de escritura, debe declarar que realiza operaciones de lectura y escritura y solicitar ambos alcances. Si solo se escriben datos de presión arterial en la plataforma de Google Fit, solo se debe solicitar el permiso de escritura.

Elige los tipos de datos con responsabilidad. No solicites todos los tipos de datos en caso de que tu app los necesite. Los tipos especificados determinan los alcances para los que se solicita permiso al usuario. Solo solicita los tipos de datos que necesita tu app para aumentar las probabilidades de que los usuarios otorguen acceso. Los usuarios otorgan acceso con mayor facilidad a alcances limitados y descritos con claridad.

Usa esta tabla para verificar si los permisos a los que necesita acceder la app 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 Permite 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 Lectura de datos de glucemia de la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.blood_glucose.write Escriba los datos de glucemia en la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.blood_pressure.read Leer datos de presión arterial de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.blood_pressure.write Escribir datos de presión arterial en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.body.read Leer datos de medición corporal (altura, peso, porcentaje de grasa corporal) de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.body.write Escribir datos de medición corporal en la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.body_temperature.read Lee los datos sobre temperatura corporal de la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.body_temperature.write Escribe los datos sobre temperatura corporal en la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.heart_rate.read Leer datos de ritmo cardíaco de la plataforma Google Fit. Restringido
https://www.googleapis.com/auth/fitness.heart_rate.write Ingresar datos de ritmo cardíaco en la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.location.read Permite leer los datos de ubicación de la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.location.write Escribe datos de ubicación en la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.nutrition.read Permite leer los datos de nutrición de la plataforma Google Fit. Restringido
https://www.googleapis.com/auth/fitness.nutrition.write Escribir datos de nutrición en la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Leer datos sobre la saturación del oxígeno de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Escribir datos de saturación de oxígeno en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.reproductive_health.read Leer datos de salud reproductiva de la plataforma de Google Fit. Restringido
https://www.googleapis.com/auth/fitness.reproductive_health.write Escribir datos de salud reproductiva en la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.sleep.read Leer datos de sueño de la plataforma de Google Fit Restringido
https://www.googleapis.com/auth/fitness.sleep.write Escribe datos de sueño en la plataforma de Google Fit. Restringido

Agrega permisos nuevos a una app existente

Cuando actualizas la app para solicitar un alcance nuevo (por ejemplo, si agregas los permisos de sueño o de frecuencia cardíaca nuevos, o agregas un alcance de lectura), se le solicitará a los usuarios que la app solicite acceso a estos permisos y podrán otorgar o rechazar el acceso.

Se recomienda solicitar autorización a los usuarios para los recursos en el momento en que los necesites. Sigue los lineamientos sobre cómo solicitar autorización incremental.

Es más probable que los usuarios otorguen acceso si comprenden el motivo o la forma en que la app usa estos datos:

  • Considera agregar una pantalla que muestre una advertencia o indique a los usuarios que se les pedirán estos permisos.
  • Explica con claridad el motivo por el que 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 recomendaciones relacionadas con los permisos de las apps para Android.