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 decidir qué acción tomar.

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")
}

Feature flags

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 metadatos
FEATURE_PERSONAL_HEALTH_RECORD Registros médicos Formato de datos de registros médicos
Escribir datos médicos
Leer datos médicos
FEATURE_MINDFULNESS_SESSION Mindfulness Registrar la atención plena
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 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 controlar 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. Puedes considerar dirigir al usuario para que actualice Health Connect si no tiene la versión compatible más reciente en su dispositivo. Sin embargo, los usuarios que usan el APK (en Android 13 y versiones anteriores) no pueden usar las funciones del módulo del sistema que solo están disponibles en dispositivos que ejecutan 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 de escritura y de la IU.