API de Health Platform

La API de Health Platform es una API de Android que proporciona a los desarrolladores una única interfaz para leer, escribir y compartir los datos históricos de salud, bienestar y actividad física de un usuario. Con Health Platform, los usuarios tienen el control de sus datos. Pueden controlar qué apps tienen acceso de lectura o escritura a diferentes tipos de datos. Los tipos de datos de la API de Health Platform incluyen altura, frecuencia cardíaca y mucho más.

La API de Health Platform brinda a los usuarios un mecanismo de almacenamiento y uso compartido que les permite seleccionar qué apps pueden utilizar y mostrar sus datos personales de salud, actividad física y bienestar. Esto permite que los desarrolladores de apps les proporcionen a los usuarios una vista más completa de su salud, así como la posibilidad de que supervisen sus datos de manera más eficaz.

El kit de desarrollo de software de la API de Health Platform brinda a los desarrolladores de apps para Android todo lo que necesitan para brindar acceso a los datos de salud y bienestar de un usuario en dispositivos Samsung seleccionados, y permite que diferentes apps realicen operaciones masivas, como insertar, borrar y leer datos.

Comenzar

Cuando uses Health Platform, ten en cuenta lo siguiente:

  • Las apps cliente deben obtener permisos detallados para el acceso de lectura o escritura del usuario.
  • El usuario puede denegar los permisos o revocarlos en cualquier momento posterior.
  • La API de Health Platform solo admite dispositivos Samsung seleccionados.
  • HealthDataClient es el cliente de Health Platform y un punto de entrada a Health Platform.

En la siguiente imagen, se muestran los pasos de integración necesarios que deben seguir los desarrolladores:

integration-steps

Archivos de la versión

La versión V1 de Health Platform contiene lo siguiente:

  • SDK cliente: Incluye este SDK en tu aplicación para usar la API de Health Platform. Es un repositorio de Maven que puedes incluir directamente en los archivos de compilación de Gradle de tu aplicación.

Instala Health Platform

Instala Health Platform siguiendo estos pasos:

En el archivo raíz build.gradle de la app, agrega el repositorio, como se muestra en el siguiente ejemplo:

allprojects {
    ...
    repositories {
        ...
        google()
    }
}

Agrega una dependencia en el SDK de Health Platform en el archivo build.gradle de tu módulo, como se muestra en el siguiente ejemplo:

dependencies {
   …
  implementation 'com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01'
}

Datos

Health Platform almacena y estructura los datos de salud y actividad física. También considera las diferencias principales entre la forma en que se miden los diferentes tipos de datos. Por ejemplo, una medición de frecuencia cardíaca se toma de inmediato, pero un recuento de pasos se registra a lo largo de un período determinado.

Estos son los objetos centrales de Health Platform y cómo se diferencian:

  • RawData: Es un registro de medición y datos.
  • DataType: Es un especificador para tipos comunes de datos de salud y actividad física, como la frecuencia cardíaca, la grasa corporal o la temperatura corporal, y sus formatos, como campos, opcionales o de solo lectura.
  • SampleData: Es un objeto RawData que es una medición instantánea, como la frecuencia cardíaca, la presión arterial o la velocidad de carrera.
  • IntervalData: Es un objeto RawData que es una medición acumulativa tomada durante un período, como la cantidad de pasos dados, la distancia recorrida o las calorías quemadas.
  • SeriesData: Es un objeto RawData que encapsula una secuencia de mediciones tomadas a lo largo de un período. SeriesData es ideal para datos de sensores de alta frecuencia, como las muestras continuas de frecuencia cardíaca durante una sesión de actividad.

Cada una de las tres clases de RawData corresponde a una subclase específica de DataType: SampleData, IntervalData y SeriesData corresponden a SampleDataType, IntervalDataType y SeriesDataType, respectivamente.

A cada objeto RawData se le asigna un identificador único (UID) por parte de Health Platform cuando se inserta. Puedes usar este UID para hacer referencia a un objeto RawData específico en solicitudes de lectura, actualización o eliminación.

Tipos de datos

Health Platform incluye un amplio conjunto de tipos de datos que se usan comúnmente en apps de salud y fitness. Los datos almacenados con los tipos de datos disponibles proporcionan a los usuarios una vista integral de sus datos históricos de salud, actividad física y bienestar, lo que brinda estadísticas sobre sus actividades diarias.

Cada tipo de datos se define por su formato de datos, que incluye lo siguiente:

  • Campos: Son campos específicos o genéricos asociados con el tipo de datos. Por ejemplo, el tipo de datos de saturación de oxígeno en sangre (SpO2) tiene campos como Título, Notas y Porcentaje.
  • Tipo: Puede ser largo, doble, string o enum.
  • Atributo: Puede ser de solo lectura, obligatorio, opcional o un rango de validación.

Lista de tipos de datos

Comprende los tipos de datos disponibles para aprovechar Health Platform al máximo. Actualmente, Health Platform admite los tipos de datos que se muestran en la siguiente tabla. Se organizan según su formato (muestra, intervalo o serie).

Tipos de SampleData:

DataType.BasalMetabolicRateDataType BASAL_METABOLIC_RATE Obligatorio
DataType.BloodGlucoseDataType BLOOD_GLUCOSE Obligatorio y opcional
DataType.BloodPressureDataType BLOOD_PRESSURE Obligatorio y opcional
DataType.BodyFatDataType BODY_FAT Obligatorio
DataType.BodyTemperatureDataType BODY_TEMPERATURE Obligatorio y opcional
DataType.BoneMassDataType BONE_MASS Obligatorio
DataType.CervicalMucusDataType CERVICAL_MUCUS Opcional
DataType.CervicalPositionDataType CERVICAL_POSITION Opcional
DataType.CyclingPedalingCadenceDataType CYCLING_PEDALING_CADENCE Obligatorio
DataType.DateOfBirthDataType DATE_OF_BIRTH Solo lectura
DataType.GenderDataType GENDER Solo lectura
DataType.HeartRateDataType HEART_RATE Obligatorio
DataType.HeightDataType HEIGHT Obligatorio
DataType.HipCircumferenceDataType HIP_CIRCUMFERENCE Obligatorio
DataType.HrvDifferentialIndexDataType HRV_DIFFERENTIAL_INDEX Obligatorio
DataType.HrvRmssdDataType HRV_RMSSD Obligatorio
DataType.HrvSDataType HRV_S Obligatorio
DataType.HrvSd2DataType HRV_SD2 Obligatorio
DataType.HrvSdannDataType HRV_SDANN Obligatorio
DataType.HrvSdnnDataType HRV_SDNN Obligatorio
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX Obligatorio
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX Obligatorio
DataType.HrvSdsdDataType HRV_SDSD Obligatorio
DataType.HrvTinnDataType HRV_TINN Obligatorio
DataType.LeanBodyMassDataType LEAN_BODY_MASS Obligatorio
DataType.LocationDataType LOCATION Obligatorio
DataType.MenstruationDataType MENSTRUATION Opcional
DataType.OvulationTestDataType OVULATION_TEST Obligatorio
DataType.OxygenSaturationDataType OXYGEN_SATURATION Obligatorio
DataType.PaceDataType PACE Obligatorio
DataType.PowerDataType POWER Obligatorio
DataType.RespiratoryRateDataType RESPIRATORY_RATE Obligatorio
DataType.RestingHeartRateDataType RESTING_HEART_RATE Obligatorio
DataType.SexualActivityDataType SEXUAL_ACTIVITY Obligatorio
DataType.SpeedDataType SPEED Obligatorio
DataType.StepsCadenceDataType STEPS_CADENCE Obligatorio
DataType.Vo2MaxDataType VO2_MAX Obligatorio y opcional
DataType.WaistCircumferenceDataType WAIST_CIRCUMFERENCE Obligatorio
DataType.WeightDataType WEIGHT Obligatorio

Tipos de IntervalData:

DataType.ActiveEnergyDataType ACTIVE_ENERGY_BURNED Obligatorio
DataType.ActiveTimeDataType ACTIVE_TIME Solo lectura
DataType.ActivityEventDataType ACTIVITY_EVENT Obligatorio
DataType.ActivityLapDataType ACTIVITY_LAP Opcional
DataType.ActivitySessionDataType ACTIVITY_SESSION Obligatorio
DataType.BasalEnergyDataType BASAL_ENERGY_BURNED Solo lectura
DataType.DistanceDataType DISTANCE Obligatorio
DataType.ElevationGainedDataType ELEVATION_GAINED Obligatorio
DataType.FloorsClimbedDataType FLOORS_CLIMBED Obligatorio
DataType.HydrationDataType HYDRATION Obligatorio
DataType.NutritionDataType NUTRITION Opcional
DataType.RepetitionsDataType REPETITIONS Obligatorio
DataType.SleepSessionDataType SLEEP_SESSION Opcional
DataType.SleepStageDataType SLEEP_STAGE Obligatorio
DataType.StepsDataType STEPS Obligatorio
DataType.SwimmingStrokesDataType SWIMMING_STROKES Obligatorio y opcional
DataType.TotalEnergyDataType TOTAL_ENERGY_BURNED Solo lectura

Tipos de SeriesData:

DataType.CyclingPedalingCadenceSeriesDataType CYCLING_PEDALING_CADENCE Obligatorio
DataType.HeartRateSeriesDataType HEART_RATE Obligatorio
DataType.LocationSeriesDataType LOCATION Obligatorio
DataType.PaceSeriesDataType PACE Obligatorio
DataType.PowerSeriesDataType POWER Obligatorio
DataType.SpeedSeriesDataType SPEED Obligatorio
DataType.StepsCadenceSeriesDataType STEPS_CADENCE Obligatorio

Funciones para desarrolladores

A continuación, se describe el conjunto de funciones de datos estándar disponibles en Health Platform. La plataforma proporciona funciones estándar de inserción, actualización y eliminación para datos sin procesar.

Lectura de AggregatedData

La plataforma permite a los clientes aplicar una función de agregación en los siguientes tipos de AggregatedData:

  • StatisticalData: Son los valores promedio, mínimo o máximo en un conjunto de SampleData o SeriesData, como la frecuencia cardíaca mínima y máxima durante una sesión de actividad.
  • CumulativeData: Es la suma de los valores de IntervalData, como el recuento total de pasos dentro de un intervalo diario.
  • CountData: Es un recuento simple de la cantidad de objetos RawData subyacentes, como la cantidad de sesiones de actividad en una semana determinada. Los datos de recuento se pueden calcular para tipos de datos de muestra, de intervalo y de series.

Conéctate a la API de Health Platform

HealthDataClient es el punto de entrada a la API de Health Platform.

En los siguientes pasos, se describe cómo conectarte a Health Platform:

  1. Usa HealthDataService.getClient para crear instancias de HealthDataClient nuevas.
  2. La app cliente debe solicitar permiso al usuario mediante el método requestPermissions (Set).

HealthDataClient administra automáticamente su conexión con la capa de almacenamiento subyacente y controla toda la comunicación entre procesos (IPC) y la serialización de las solicitudes salientes y las respuestas entrantes.