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

Flag funzionalità

I flag delle funzionalità disponibili per Connessione Salute sono elencati nella tabella seguente. La funzionalità dietro un flag di funzionalità non sarà disponibile per l'uso se il dispositivo dell'utente non supporta la funzionalità.

Tabella: flag di disponibilità delle funzionalità di Connessione Salute
Flag funzionalità Tipo di dati Guide correlate
FEATURE_ACTIVITY_INTENSITY Intensità dell'attività
FEATURE_EXTENDED_DEVICE_TYPES Tipi di dispositivi estesi Requisiti dei metadati
FEATURE_PERSONAL_HEALTH_RECORD Cartelle cliniche Formato dei dati delle cartelle cliniche
Scrittura di dati medici
Lettura di dati medici
FEATURE_MINDFULNESS_SESSION Mindfulness Monitorare la mindfulness
FEATURE_PLANNED_EXERCISE Allenamento pianificato Piani di allenamento
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND Lettura dei dati in background Esempio di lettura in background
FEATURE_READ_HEALTH_DATA_HISTORY Leggere i dati storici Leggere i dati più vecchi di 30 giorni
FEATURE_SKIN_TEMPERATURE Temperatura cutanea Misurare la temperatura cutanea

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.