Rilevamento e gestione delle eccezioni

Connessione Salute genera eccezioni standard per le operazioni CRUD quando si verifica un problema. L'app dovrebbe rilevare e gestire ciascuna di queste eccezioni nel modo opportuno.

Ogni metodo su HealthConnectClient elenca le eccezioni che possono essere generate. In generale, l'app dovrebbe gestire le seguenti eccezioni:

Eccezione Descrizione Best practice consigliata
SecurityException Si verificano problemi quando le richieste richiedono autorizzazioni che non vengono concesse. Per evitare che questo accada, assicurati di aver richiesto le autorizzazioni per l'app pubblicata. Inoltre, devono essere dichiarate nel file manifest e nelle tue attività.

IOException Si sono verificati problemi durante la lettura e la scrittura dei dati dal disco. Per evitare questo problema, ecco alcuni suggerimenti:

  • Esegui il backup di qualsiasi input utente.
  • Essere in grado di gestire eventuali problemi che si verificano durante le operazioni di scrittura collettiva. Ad esempio, assicurati che il processo superi il problema ed esegua le operazioni rimanenti.
  • Applicare i nuovi tentativi e le strategie di backoff per gestire i problemi delle richieste.

IllegalStateException Si è verificato uno dei seguenti scenari:

  • Il servizio Connessione Salute non è disponibile.
  • La richiesta non è una costruzione valida. Ad esempio, una richiesta aggregata in bucket periodici in cui viene utilizzato un oggetto Instant per timeRangeFilter.

Prima di eseguire una richiesta, gestisci i possibili problemi con gli input. Preferibilmente, assegna valori alle variabili o utilizzali come parametri all'interno di una funzione personalizzata invece di utilizzarli direttamente nelle richieste in modo da poter applicare strategie di gestione degli errori.
RemoteException Si sono verificati errori all'interno del servizio sottostante a cui si connette l'SDK o durante le comunicazioni con quest'ultimo.

Ad esempio, la tua app sta tentando di eliminare un record con un determinato uid. Tuttavia, l'eccezione viene generata dopo che l'app rileva, al controllo nel servizio sottostante, che il record non esiste.
Per evitare questo problema, ecco alcuni suggerimenti:

  • Esegui sincronizzazioni regolari tra il datastore della tua app e Connessione Salute.
  • Applicare i nuovi tentativi e le strategie di backoff per gestire i problemi delle richieste.