Le API eUICC forniscono codici di errore per aiutare app e utenti a risolvere i problemi relativi a download, attivazione, disattivazione ed eliminazione dei profili eSIM.
Gestisci gli errori
Quando si verifica un errore durante la chiamata all'API eUICC, viene fornito un callback di intent in attesa e
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
viene utilizzato come chiave per ottenere il codice di errore dettagliato. A partire da
Android 11, i seguenti quattro valori e chiavi sono
inclusi nell'intent risultante:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE: Fornisce informazioni su cosa è andato storto. Ad esempio, il download o l'eliminazione di un profilo eSIM. Questo campo non è mai vuoto.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE: Informazioni sul motivo per cui si è verificato l'errore. Ad esempio, la richiesta è scaduta o il dispositivo è bloccato dall'operatore. Questo campo non viene compilato nei seguenti casi:- Il codice operazione è
OPERATION_SMDX_SUBJECT_REASON_CODE. - L'errore è di basso livello, ad esempio 
IOExceptionoInterruptedException. 
- Il codice operazione è
 EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE: Utilizzato conEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE, che insieme forniscono SubjectCode[5.2.6.1] e ReasonCode[5.2.6.2] di GSMA (SGP.22 v2.2). Questo campo viene compilato solo quando il codice operazione èOPERATION_SMDX_SUBJECT_REASON_CODE.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE: Utilizzato conEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE, che insieme forniscono SubjectCode[5.2.6.1] e ReasonCode[5.2.6.2] di GSMA (SGP.22 v2.2). Questo campo viene compilato solo quando il codice operazione èOPERATION_SMDX_SUBJECT_REASON_CODE.
Questi quattro valori consentono al chiamante dell'API eUICC di gestire singolarmente errori specifici. 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 supportata di operazione e codici di errore restituiti dall'assistente del 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 un errore IOException. | 
|
OPERATION_SIM_SLOT | 
Non applicabile | Si è verificato un errore interno durante l'esecuzione di un'operazione sullo slot SIM. | |
ERROR_TIME_OUT | 
Timeout durante il tentativo di esecuzione di un'operazione sullo slot 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 | 
La versione di eUICC (chip) e di EuiccCard (software) non 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 keystore o certificato se utilizzato nella connessione TLS per la 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 commutazione. | |
ERROR_CARRIER_LOCKED | 
Non è consentito cambiare profilo perché il dispositivo è bloccato dall'operatore (SIM bloccata). | ||
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 sull'eUICC è nulla o il download non è consentito dalla regola dei criteri del profilo. | ||
ERROR_INVALID_ACTIVATION_CODE | 
Si è verificato un errore durante l'analisi del codice di attivazione (formato non valido) o durante il tentativo di download senza codice di attivazione. | ||
ERROR_CARRIER_LOCKED | 
Non è consentito il download perché il dispositivo è bloccato dall'operatore (SIM bloccata). | ||
ERROR_INCOMPATIBLE_CARRIER | 
L'operatore è nella lista nera e l'LPA non può scaricare un profilo da SM-DP+/SM-DS. | ||
ERROR_OPERATION_BUSY | 
Il download del profilo è in corso e non sono consentite altre azioni che potrebbero attivare modifiche dello stato della SIM. | ||
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 dei metadati dell'abbonamento è vuoto o non valido. | ||
ERROR_INCOMPATIBLE_CARRIER | 
L'operatore è nella lista nera e l'LPA non può scaricare il profilo di questo operatore da 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 l'eUICC durante il tentativo di installazione del profilo. Ad esempio, il profilo esiste già o l'ICCID non corrisponde. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY | 
Errore con l'eUICC durante il tentativo di installazione del profilo. Memoria insufficiente sull'eUICC. | ||
ERROR_DISALLOWED_BY_PPR | 
Errore con l'eUICC durante il tentativo di installazione del profilo. Non consentito dalla regola dei criteri 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 materia | Codice motivo | Descrizione | 
OPERATION_SMDX_SUBJECT_REASON_CODE | 
La stringa contiene 3 cifre separate da un punto, senza zeri iniziali. Ad
esempio, 8.1.1. | 
La stringa contiene 3 cifre separate da un punto senza zeri iniziali. Ad
esempio, 3.8. | 
SubjectCode[5.2.6.1] e ReasonCode[5.2.6.2] di GSMA (SGP.22 v2.2). Ad esempio, un SubjectCode di 8.1.1 e un ReasonCode di 3.8 significa che l'EID è associato a un altro dispositivo. |