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:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Fornisce informazioni sul problema. 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 con timestamp o se il dispositivo è bloccato dall'operatore. Questo campo non è compilato nella i seguenti casi:- Il codice dell'operazione è
OPERATION_SMDX_SUBJECT_REASON_CODE
- L'errore è un errore di basso livello come
IOException
oInterruptedException
.
- Il codice dell'operazione è
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Utilizzato conEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
, che insieme fornire il SubjectCode [5.2.6.1] e ReasonCode[5.2.6.2] da GSMA (SGP.22 v2.2). Questo campo viene compilato solo quando il codice dell'operazione vieneOPERATION_SMDX_SUBJECT_REASON_CODE
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Utilizzato conEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
, che insieme fornire il SubjectCode [5.2.6.1] e ReasonCode[5.2.6.2] da GSMA (SGP.22 v2.2). Questo campo viene compilato solo quando il codice dell'operazione vieneOPERATION_SMDX_SUBJECT_REASON_CODE
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. |