Gestire gli errori dell'API eUICC

La API eUICC fornire codici di errore per aiutare le app e gli utenti a risolvere i problemi relativi a: scaricare, attivare, disattivare ed eliminare profili eSIM.

Gestire gli errori

Se si verifica un errore durante la chiamata all'API eUICC, viene eseguito un callback di intent in attesa forniti e EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE viene utilizzata come chiave per ottenere il codice di errore dettagliato. A partire da Android 11, le quattro chiavi e i valori seguenti sono incluse nell'intento risultante:

Questi quattro valori consentono al chiamante dell'API eUICC di gestire errori specifici singolarmente. Di seguito è riportato un esempio di come gestire questi errori.

int operationCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE)
int errorCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE)
String smdxSubjectCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE)
String smdxReasonCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE)

if (operationCode == OPERATION_DOWNLOAD && errorCode == ERROR_CARRIER_LOCKED) {
  // handle specific error i.e. tries to download but the device is carrier locked
} else if (operationCode == OPERATION_SMDX) {
  // handle all SM-DP+/SM-DS errors
} else if (errorCode == ERROR_TIME_OUT) {
  // handle all types of time out issues, regardless of operation.
} else if ("8.1".equals(smdxSubjectCode) && "3.1".equals(smdxReasonCode)) {
  // handle specific subject code and reason code: 8.1 and 4.1 means insufficient memory.
}

Combinazioni di operazioni e codici di errore supportate

La tabella seguente descrive la combinazione di operazione e Codici di errore restituiti dall'Assistente di profilo locale (LPA).

Combinazioni di operazioni e codici di errore
Codice operazione Codice di errore Descrizione
OPERATION_SYSTEM Non applicabile Si è verificato un errore interno. Ad esempio, il thread è stato interrotto o Si è verificato IOException errore.
OPERATION_SIM_SLOT Non applicabile Si è verificato un errore interno durante l'esecuzione di un'operazione sullo slot della SIM.
ERROR_TIME_OUT Timeout durante il tentativo di eseguire un'operazione di slot della SIM.
ERROR_EUICC_MISSING Nessuna eUICC disponibile o attiva sul dispositivo.
OPERATION_EUICC_CARD Non applicabile Si è verificato un errore interno durante l'esecuzione di un'operazione eUICC.
ERROR_UNSUPPORTED_VERSION Le versioni eUICC (chip) e EuiccCard (software) non lo sono compatibili.
ERROR_EUICC_MISSING Nessuna scheda SIM disponibile nel dispositivo. Ad esempio, l'LPA non riesce a rilevare la scheda SIM.
OPERATION_SMDX Non applicabile Si è verificato un errore interno durante l'esecuzione di un'operazione SM-DP+/SM-DS.
ERROR_ADDRESS_MISSING Nessun indirizzo SM-DP+ per scaricare il profilo.
ERROR_INVALID_CONFIRMATION_CODE Si è verificato un errore durante l'analisi del codice di attivazione (formato non valido).
ERROR_CERTIFICATE_ERROR Errore di archivio chiavi o certificato quando utilizzato nella connessione TLS per verifica.
ERROR_NO_PROFILES_AVAILABLE Nessun profilo disponibile da SM-DP+.
ERROR_CONNECTION_ERROR Impossibile creare la connessione al server.
ERROR_INVALID_RESPONSE Risposta non valida dal server SM-DP+/SM-DS.
OPERATION_SWITCH Non applicabile Si è verificato un errore interno durante l'esecuzione di un'operazione di cambio.
ERROR_CARRIER_LOCKED Non puoi cambiare profilo perché il dispositivo è bloccato dall'operatore (SIM) bloccato).
OPERATION_DOWNLOAD Non applicabile Si è verificato un errore interno durante l'esecuzione di un'operazione di download.
ERROR_DISALLOWED_BY_PPR La tabella di autorizzazione delle regole nella eUICC è nulla o il download è non consentito dalla regola del criterio del profilo.
ERROR_INVALID_ACTIVATION_CODE Si è verificato un errore durante l'analisi del codice di attivazione (formato non valido) oppure tentativo di download senza codice di attivazione.
ERROR_CARRIER_LOCKED Download non consentito perché il dispositivo è bloccato dall'operatore (SIM) bloccato).
ERROR_INCOMPATIBLE_CARRIER L'operatore è nella lista nera e l'LPA non può scaricare un profilo da SM-DP+/SM-DS.
ERROR_OPERATION_BUSY È in corso il download del profilo e non ci sono altre azioni che potrebbero attivare la SIM modifiche di stato consentite.
OPERATION_METADATA Non applicabile Si è verificato un errore interno durante l'esecuzione dell'operazione sui metadati.
ERROR_INVALID_ACTIVATION_CODE I metadati dell'abbonamento sono vuoti o il codice di attivazione all'interno della sezione I metadati dell'abbonamento sono vuoti o non validi.
ERROR_INCOMPATIBLE_CARRIER L'operatore è nella lista nera e l'LPA non può scaricare il standard di SM-DP+/SM-DS.
OPERATION_EUICC_GSMA Non applicabile Si è verificato un errore interno durante l'esecuzione di un'operazione GSMA eUICC.
ERROR_INSTALL_PROFILE Errore con eUICC durante il tentativo di installazione del profilo. Ad esempio, il profilo esiste già o il valore ICCID non corrisponde.
ERROR_EUICC_INSUFFICIENT_MEMORY Errore con eUICC durante il tentativo di installazione del profilo. Memoria insufficiente sulla eUICC.
ERROR_DISALLOWED_BY_PPR Errore con eUICC durante il tentativo di installazione del profilo. Non consentito dal regola del criterio del profilo.
OPERATION_APDU Non applicabile Si è verificato un errore interno durante l'esecuzione di un'operazione APDU.
OPERATION_HTTP 1-999 Il codice di errore è un valore di errore HTTP.
Codice operazione Codice argomento Codice motivo Descrizione
OPERATION_SMDX_SUBJECT_REASON_CODE La stringa contiene tre cifre separate da un punto, senza zeri iniziali. Per ad esempio 8.1.1. La stringa contiene tre cifre separate da un punto, senza zeri iniziali. Per ad esempio 3.8. SubjectCode [5.2.6.1] e ReasonCode [5.2.6.2] di GSMA (SGP.22 v2.2). Per ad esempio un SubjectCode di 8.1.1 e un ReasonCode di 3.8 indica l'EID è associato a un altro dispositivo.