Verificare la disponibilità delle funzionalità

Quando vengono aggiunte nuove funzionalità a Connessione Salute, gli utenti potrebbero non aggiornare sempre la propria versione di Connessione Salute. L'API Feature Availability è un modo per verificare se una funzionalità di Connessione Salute è disponibile sul dispositivo dell'utente e decidere quale azione intraprendere.

Inizia

L'API Feature Availability condivide la stessa dipendenza dell'SDK Health Connect. Per iniziare, verifica che nel file build.gradle sia presente almeno la versione 1.1.0-alpha08:

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

Esegui il controllo

La funzione principale per verificare la disponibilità delle funzionalità è getFeatureStatus(). Restituisce le costanti intere FEATURE_STATUS_AVAILABLE o FEATURE_STATUS_UNAVAILABLE:

Per determinare se il dispositivo di un utente supporta la lettura dei dati sanitari in background su Connessione Salute, controlla la disponibilità di FEATURE_READ_HEALTH_DATA_IN_BACKGROUND sul client:

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

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

Per un elenco di tutti i flag delle funzionalità disponibili, consulta la pagina di riferimento di HealthConnectFeatures.

Gestire la mancanza di disponibilità delle funzionalità

Se una funzionalità non è disponibile sul dispositivo di un utente, un aggiornamento potrebbe renderla disponibile. Potresti consigliare all'utente di aggiornare Connessione Salute se sul suo dispositivo non è installata l'ultima versione supportata. Tuttavia, gli utenti che utilizzano l'APK (su Android 13 e versioni precedenti) non possono utilizzare le funzionalità del modulo di sistema disponibili solo sui dispositivi con Android 14 o versioni successive.

Per i tipi di dispositivi estesi, se FEATURE_EXTENDED_DEVICE_TYPES non è disponibile sul dispositivo dell'utente, questi valori vengono trattati come Device.TYPE_UNKNOWN. Fornisci un fallback sensato nella logica di scrittura e dell'interfaccia utente.