Health Connect almacena y estructura los datos de salud y actividad física. También tiene en cuenta cómo se miden los diferentes tipos de datos. Estos tipos de datos incluyen mediciones de la frecuencia cardíaca que se toman de inmediato, el recuento de pasos tomado a lo largo del tiempo y los datos de sueño tomados en sesiones.
Es importante comprender primero qué tipos de datos y permisos ofrece Health Connect para que puedas planificar los requisitos de tu app. Dicho esto, debes revisar los tipos de datos antes de finalizar los requisitos.
Categorías de tipos de datos
Health Connect admite tipos de datos que se usan en la mayoría de las apps de salud y fitness para proporcionar la mayor variedad posible. El objetivo de Health Connect es ofrecer una vista integral y el almacenamiento de datos de salud y actividad física. Estos tipos de datos se clasifican en las siguientes categorías:
- Actividad: Captura cualquier actividad que realice el usuario. Puede incluir actividades de salud y fitness, como correr, nadar y dormir.
- Medidas corporales: Captura datos comunes relacionados con el cuerpo, como el peso de un usuario y su tasa metabólica basal.
- Seguimiento del ciclo: Registra los ciclos menstruales y los datos relacionados, como el resultado binario de una prueba de ovulación.
- Nutrición: Captura los tipos de datos de hidratación y nutrición. El primero representa cuánta agua consume un usuario en una sola bebida. El último incluye campos opcionales como calorías, azúcar y magnesio.
- Sueño: Captura los datos en intervalos relacionados con la duración y el tipo de sueño de un usuario.
- Datos vitales: Registra información esencial sobre la salud general del usuario. Incluye datos como temperatura corporal, glucemia, presión arterial y saturación de oxígeno en sangre.
Formato del tipo de datos
Los tipos de datos de Health Connect se almacenan en objetos que son subclases de Record
.
Para cada tipo de datos, hay campos asociados que son genéricos, como time
y zoneOffset
, o específicos, como title
, count
y percentage
.
Algunos campos usan tipos simples, como los tipos largo, doble o string, mientras que otros usan tipos complejos, como enumeraciones y clases, como Instant
y ZoneOffset
. Los atributos de estos campos pueden ser opcionales o obligatorios. Algunos atributos son de solo lectura y otros se restringen a un rango de valores específico.
Para obtener la lista completa de los tipos de datos disponibles y sus campos, consulta las clases de Jetpack.
Atributos de datos adicionales
Los datos de la API de Health Connect también incluyen atributos de metadatos que se describen en la siguiente lista:
- ID de Health Connect: A cada dato se le asigna un identificador único (UID) cuando lo creas. Esto es útil para las operaciones de lectura y escritura estándar. Consulta ID de Health Connect para obtener más detalles.
- Hora de última modificación: Indica la marca de tiempo de la última instancia en la que un registro tiene una actualización. Se genera automáticamente en la primera creación del registro o en cada actualización.
- Origen de los datos: Health Connect almacena información sobre la app de la que provienen los datos. Contiene el nombre del paquete de ese origen, que se agrega automáticamente cuando se crea.
- Dispositivo: Health Connect almacena información sobre el dispositivo del que provienen los datos. Contiene el fabricante y el modelo de ese dispositivo, y proporcionas el valor de forma manual.
- ID de cliente: Health Connect proporciona IDs de cliente para que las apps cliente puedan consultar los datos con sus propios IDs, lo que ayuda con la resolución de conflictos y facilita la sincronización. Esto se suministra al registro de forma manual.
- Versión del registro de cliente: Junto con el ID de cliente, Health Connect proporciona un control de versiones para ayudar a realizar un seguimiento de los cambios durante la sincronización de datos. Esto se suministra al registro de forma manual.
- Método de grabación: Health Connect te permite comprender cómo se registran los datos. Estos métodos incluyen apps que registran datos de forma pasiva (automática) y usuarios que registran datos de forma activa o manual.
ID de Health Connect
Health Connect asigna identificadores únicos (UID) a los objetos de datos insertados recientemente, que identifican los objetos de datos y los distinguen de otros. Los IDs de Health Connect son útiles en solicitudes de lectura o escritura. Los IDs de Health Connect no son idénticos a los IDs de cliente. Una app cliente asigna IDs de cliente, mientras que Health Connect asigna exclusivamente IDs de Health Connect.
Ten en cuenta las siguientes notas cuando trabajes con los IDs de Health Connect:
- Las sesiones tienen un solo ID de Health Connect, pero los datos dentro de ellas tienen sus propios IDs de Health Connect.
- Los IDs de Health Connect no están vinculados ni relacionados con marcas de tiempo.
- Algunos casos de uso pueden requerir almacenar un ID de Health Connect específico durante un flujo de trabajo. Por ejemplo, se requiere un ID específico para recuperar y mostrar a un usuario la entrada de datos que acaba de registrar.
La hora en Health Connect
Todos los datos que se escriban en Health Connect deben especificar la información de desfase de zona. Especificar el desplazamiento de zona permite que las apps lean los datos para representarlos en hora civil. La hora civil es la hora local y relevante para el usuario, no necesariamente en la hora universal coordinada (UTC).
En muy pocas circunstancias, el desfase de zona puede no estar disponible. Cuando esto ocurre en Android 14 (nivel de API 34), Health Connect establece el desplazamiento de la zona en función de la zona horaria predeterminada del sistema del dispositivo. En Android 13 y versiones anteriores (nivel de API 33 y anteriores), es posible escribir en Health Connect sin especificar ninguna información de desfase de zona, lo que debe evitarse siempre que sea posible.
Configuración de la hora y la zona
Especificar la información de desfase de zona mientras se escriben datos permite contar con información de zona horaria cuando se leen datos en Health Connect. Sin embargo, podría no suceder en ciertas situaciones, como cuando no se proporciona el desfase de zona. Tu app debe estar preparada para manejar ambos tipos de datos de una manera que tenga sentido en tus circunstancias específicas.
Permisos
Antes de solicitar permisos, tu app debe declararlos en el manifiesto. Consulta las siguientes tablas para ver la asignación completa de los tipos de datos y sus permisos.
Para 1.0.0-alpha10 y versiones posteriores
Tipo de clase de registro | Declaración de permisos de lectura y escritura |
---|---|
ActiveCaloriesBurned |
android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED |
BasalBodyTemperature |
android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE |
BasalMetabolicRate |
android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE |
BloodGlucose |
android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE |
BloodPressure |
android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE |
BodyFat |
android.permission.health.READ_BODY_FAT
android.permission.health.WRITE_BODY_FAT |
BodyTemperature |
android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE |
Masa de agua corporal |
android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS |
BoneMass |
android.permission.health.READ_BONE_MASS
android.permission.health.WRITE_BONE_MASS |
CervicalMucus |
android.permission.health.READ_CERVICAL_MUCUS
android.permission.health.WRITE_CERVICAL_MUCUS |
CyclingPedalingCadence |
android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE |
Distance |
android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE |
ElevationGained |
android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED |
ExerciseSession |
android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE |
FloorsClimbed |
android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED |
HeartRate |
android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE |
VariabilityRmssd_Frecuencia_corazón |
android.permission.health.READ_HEART_RATE_VARIABILITY
android.permission.health.WRITE_HEART_RATE_VARIABILITY |
Altura |
android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT |
Hydration |
android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION |
IntermenstrualBleeding |
android.permission.health.READ_INTERMENSTRUAL_BLEEDING
android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING |
LeanBodyMass |
android.permission.health.READ_LEAN_BODY_MASS
android.permission.health.WRITE_LEAN_BODY_MASS |
MenstruationFlow |
android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION |
MenstruationPeriod |
android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION |
Nutrition |
android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION |
OvulationTest |
android.permission.health.READ_OVULATION_TEST
android.permission.health.WRITE_OVULATION_TEST |
OxygenSaturation |
android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION |
Alimentación |
android.permission.health.READ_POWER
android.permission.health.WRITE_POWER |
RespiratoryRate |
android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE |
RestingHeartRate |
android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE |
SexualActivity |
android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY |
SleepSession |
android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP |
Velocidad |
android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED |
StepsCadence |
android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS |
Pasos |
android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS |
TotalCaloriesBurned |
android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED |
Vo2Max |
android.permission.health.READ_VO2_MAX
android.permission.health.WRITE_VO2_MAX |
Weight |
android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT |
WheelchairPushes |
android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES |
Para 1.0.0-alpha09 y versiones anteriores
Tipo de clase de registro | Declaración de permisos de lectura y escritura |
---|---|
ActiveCaloriesBurned |
androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE |
BasalBodyTemperature |
androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE |
BasalMetabolicRate |
androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE |
BloodGlucose |
androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE |
BloodPressure |
androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE |
BodyFat |
androidx.health.permission.BodyFat.READ
androidx.health.permission.BodyFat.WRITE |
BodyTemperature |
androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE |
Masa de agua corporal |
androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE |
BoneMass |
androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE |
CervicalMucus |
androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE |
CyclingPedalingCadence |
androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE |
Distance |
androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE |
ElevationGained |
androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE |
ExerciseSession |
androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE |
FloorsClimbed |
androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE |
HeartRate |
androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE |
VariabilityRmssd_Frecuencia_corazón |
androidx.health.permission.HeartRateVariabilityRmssd.READ
androidx.health.permission.HeartRateVariabilityRmssd.WRITE |
Altura |
androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE |
Hydration |
androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE |
IntermenstrualBleeding |
androidx.health.permission.IntermenstrualBleeding.READ
androidx.health.permission.IntermenstrualBleeding.WRITE |
LeanBodyMass |
androidx.health.permission.LeanBodyMass.READ
androidx.health.permission.LeanBodyMass.WRITE |
MenstruationFlow |
androidx.health.permission.MenstruationFlow.READ
androidx.health.permission.MenstruationFlow.WRITE |
Nutrition |
androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE |
OvulationTest |
androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE |
OxygenSaturation |
androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE |
Alimentación |
androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE |
RespiratoryRate |
androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE |
RestingHeartRate |
androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE |
SexualActivity |
androidx.health.permission.SexualActivity.READ
androidx.health.permission.SexualActivity.WRITE |
SleepSession |
androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE |
Velocidad |
androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE |
StepsCadence |
androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE |
Pasos |
androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE |
TotalCaloriesBurned |
androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE |
Vo2Max |
androidx.health.permission.Vo2Max.READ
androidx.health.permission.Vo2Max.WRITE |
Weight |
androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE |
WheelchairPushes |
androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE |
Revisa tus tipos de datos y permisos
Ahora que planificaste los tipos de datos y permisos, puedes implementarlos durante el desarrollo.
Cuando revises tu app antes de subirla a Play Store, vuelve a verificar la lista de tipos de datos y permisos que requiere tu app. Esto te permite declarar con precisión el uso de datos de tu app.
Después de publicar tu app en Play Store, es posible que aparezca un mensaje de error en el que se indique que la app no puede acceder a los tipos de datos de Health Connect porque requieren una aprobación especial. En ese caso, debes solicitar acceso al tipo de datos a través del Formulario de declaración para desarrolladores. Para obtener más información sobre este proceso, consulta Cómo solicitar acceso a los tipos de datos de Health Connect.