Cómo comprobar la disponibilidad de las funciones

Cuando se agregan funciones nuevas a Health Connect, es posible que los usuarios no siempre actualicen su versión de Health Connect. La API de Feature Availability es una forma de verificar si una función de Health Connect está disponible en el dispositivo del usuario y determinar qué pasos seguir.

Cómo comenzar

La API de Feature Availability comparte la misma dependencia que el SDK de Health Connect. Para comenzar, verifica que al menos la versión 1.1.0-alpha08 esté en tu archivo build.gradle:

dependencies {
  implementation("androidx.health.connect:connect-client:1.1.0-alpha08")
}

Marcas de funciones

En la siguiente tabla, se enumeran las marcas de funciones disponibles para Health Connect. La funcionalidad detrás de una marca de función no estará disponible para su uso si el dispositivo del usuario no admite la función.

Tabla: Marcas de disponibilidad de funciones de Health Connect
Marca de función Tipo de datos Guías relacionadas
FEATURE_ACTIVITY_INTENSITY Intensidad de la actividad
FEATURE_EXTENDED_DEVICE_TYPES Tipos de dispositivos extendidos Requisitos de los metadatos
FEATURE_PERSONAL_HEALTH_RECORD Historias clínicas Formato de los datos de historias clínicas
Cómo escribir datos médicos
Cómo leer datos médicos
FEATURE_MINDFULNESS_SESSION Mindfulness Registro de mindfulness
FEATURE_PLANNED_EXERCISE Ejercicio planificado Planes de entrenamiento
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND Lee los datos en segundo plano Ejemplo de lectura en segundo plano
FEATURE_READ_HEALTH_DATA_HISTORY Lee los datos históricos Cómo leer datos anteriores a 30 días
FEATURE_SKIN_TEMPERATURE Temperatura cutánea Cómo medir la temperatura cutánea

Cómo realizar la verificación

La función principal para verificar la disponibilidad de funciones es getFeatureStatus(). Devuelve las constantes de números enteros FEATURE_STATUS_AVAILABLE o FEATURE_STATUS_UNAVAILABLE:

Para determinar si el dispositivo de un usuario admite la lectura de datos de salud en segundo plano en Health Connect, verifica la disponibilidad de FEATURE_READ_HEALTH_DATA_IN_BACKGROUND en el cliente:

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}

Para obtener una lista de todas las marcas de funciones disponibles, consulta la página de referencia de HealthConnectFeatures.

Cómo solucionar la falta de disponibilidad de funciones

Si una función no está disponible en el dispositivo de un usuario, es posible que una actualización la habilite. Si el usuario no tiene en su dispositivo la versión compatible más reciente de Health Connect, podrías dirigirlo a la actualización correspondiente. Sin embargo, los usuarios que usan el APK (en Android 13 y versiones anteriores) no tienen acceso a las funciones del módulo del sistema que solo están disponibles en dispositivos con Android 14 o versiones posteriores.

En el caso de los tipos de dispositivos extendidos, si FEATURE_EXTENDED_DEVICE_TYPES no está disponible en el dispositivo del usuario, esos valores se tratan como Device.TYPE_UNKNOWN. Proporciona una alternativa razonable en la lógica del código y de la IU.