Interfejsy API eUICC podaj kody błędów, aby pomóc aplikacjom i użytkownikom w rozwiązywaniu problemów pobieranie, włączanie, wyłączanie i usuwanie profili eSIM.
Obsługa błędów
Jeśli podczas wywoływania interfejsu eUICC API wystąpi błąd, oczekujące wywołanie zwrotne intencji zostanie
podane i
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
jest używany jako klucz do uzyskania szczegółowego kodu błędu. Od
w Androidzie 11, te 4 klucze i wartości są
zawarte w wynikowej intencji:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Informacje o tym, co poszło nie tak. Na przykład pobranie lub usuwając profil eSIM. To pole nigdy nie jest puste.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informacje o przyczynie wystąpienia błędu. Na przykład żądanie objęte limitem czasu lub urządzenie jest zablokowane przez operatora. To pole nie jest wypełniane w polu w następujących przypadkach:- Kod operacji to
OPERATION_SMDX_SUBJECT_REASON_CODE
- Jest to błąd niskiego poziomu, np.
IOException
lubInterruptedException
- Kod operacji to
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Używany razem z usługąEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
, która działa razem podaj kod SubjectCode[5.2.6.1] i ReasonCode[5.2.6.2] od organizacji GSMA (SGP.22 wersja 2.2). To pole jest wypełniane tylko wtedy, gdy kod operacji toOPERATION_SMDX_SUBJECT_REASON_CODE
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Używany razem z usługąEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
, która działa razem podaj kod SubjectCode[5.2.6.1] i ReasonCode[5.2.6.2] od organizacji GSMA (SGP.22 wersja 2.2). To pole jest wypełniane tylko wtedy, gdy kod operacji toOPERATION_SMDX_SUBJECT_REASON_CODE
Te 4 wartości umożliwiają wywołującemu interfejs API eUICC obsługę określonych błędów poszczególne osoby. Poniżej pokazujemy, jak należy postępować w przypadku tych błędów.
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.
}
Obsługiwane kombinacje operacji i kodów błędu
W poniższej tabeli opisano obsługiwaną kombinację operacji i funkcji kodów błędów zwracanych przez asystenta profilu lokalnego (LPA).
Kombinacje kodów operacji i błędów | |||
---|---|---|---|
Kod operacji | Kod błędu | Opis | |
OPERATION_SYSTEM |
Nie dotyczy | Wystąpił błąd wewnętrzny. Na przykład wątek został przerwany lub
Wystąpił IOException błąd. |
|
OPERATION_SIM_SLOT |
Nie dotyczy | Podczas obsługi gniazda karty SIM wystąpił błąd wewnętrzny. | |
ERROR_TIME_OUT |
Przekroczono limit czasu podczas próby wykonania operacji w gnieździe SIM. | ||
ERROR_EUICC_MISSING |
Na urządzeniu nie jest dostępna ani aktywna funkcja eUICC. | ||
OPERATION_EUICC_CARD |
Nie dotyczy | Podczas wykonywania operacji eUICC wystąpił błąd wewnętrzny. | |
ERROR_UNSUPPORTED_VERSION |
Wersja eUICC (układu) i EuiccCard (oprogramowania) nie są są zgodne. | ||
ERROR_EUICC_MISSING |
Brak karty SIM w urządzeniu. Na przykład LPA nie może wykryć, kartę SIM. | ||
OPERATION_SMDX |
Nie dotyczy | Podczas wykonywania operacji SM-DP+/SM-DS wystąpił błąd wewnętrzny. | |
ERROR_ADDRESS_MISSING |
Brak adresu SM-DP+, aby pobrać profil. | ||
ERROR_INVALID_CONFIRMATION_CODE |
Podczas analizowania kodu aktywacyjnego wystąpił błąd (nieprawidłowy format). | ||
ERROR_CERTIFICATE_ERROR |
Błąd magazynu kluczy lub certyfikatu podczas używania połączenia TLS dla weryfikacji. | ||
ERROR_NO_PROFILES_AVAILABLE |
Brak profili z SM-DP+. | ||
ERROR_CONNECTION_ERROR |
Nie można utworzyć połączenia z serwerem. | ||
ERROR_INVALID_RESPONSE |
Nieprawidłowa odpowiedź z serwera SM-DP+/SM-DS. | ||
OPERATION_SWITCH |
Nie dotyczy | Podczas wykonywania operacji przełączania wystąpił błąd wewnętrzny. | |
ERROR_CARRIER_LOCKED |
Nie można przełączyć profilu, ponieważ urządzenie jest zablokowane przez operatora (karta SIM) zablokowany). | ||
OPERATION_DOWNLOAD |
Nie dotyczy | Podczas pobierania pliku wystąpił błąd wewnętrzny. | |
ERROR_DISALLOWED_BY_PPR |
Tabela autoryzacji reguł w eUICC ma wartość null lub pobrane dane są jest niedozwolone przez regułę zasady dotyczącej profilu. | ||
ERROR_INVALID_ACTIVATION_CODE |
Podczas analizowania kodu aktywacyjnego (nieprawidłowy format) wystąpił błąd lub bez kodu aktywacyjnego. | ||
ERROR_CARRIER_LOCKED |
Nie można pobrać, ponieważ urządzenie jest zablokowane przez operatora (karta SIM) zablokowany). | ||
ERROR_INCOMPATIBLE_CARRIER |
Operator jest na czarnej liście i LPA nie może pobrać profilu z SM-DP+/SM-DS, | ||
ERROR_OPERATION_BUSY |
Trwa pobieranie profilu i nie ma innego działania, które może aktywować kartę SIM zmiany stanu są dozwolone. | ||
OPERATION_METADATA |
Nie dotyczy | Podczas wykonywania operacji na metadanych wystąpił błąd wewnętrzny. | |
ERROR_INVALID_ACTIVATION_CODE |
Metadane subskrypcji są puste lub kod aktywacyjny w tagu metadane subskrypcji są puste lub nieprawidłowe. | ||
ERROR_INCOMPATIBLE_CARRIER |
Operator jest na czarnej liście i LPA nie może pobrać z profilu SM-DP+/SM-DS. | ||
OPERATION_EUICC_GSMA |
Nie dotyczy | Podczas wykonywania operacji eUICC GSMA wystąpił błąd wewnętrzny. | |
ERROR_INSTALL_PROFILE |
Podczas próby zainstalowania profilu wystąpił błąd eUICC. Przykładowo profil już istnieje albo identyfikator ICCID nie jest zgodny. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Podczas próby zainstalowania profilu wystąpił błąd eUICC. Za mało pamięci eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Podczas próby zainstalowania profilu wystąpił błąd eUICC. Niedozwolone przez reguły zasad dotyczących profilu. | ||
OPERATION_APDU |
Nie dotyczy | Podczas wykonywania operacji na karcie APDU wystąpił błąd wewnętrzny. | |
OPERATION_HTTP |
1-999 |
Kod błędu jest wartością błędu HTTP. | |
Kod operacji | Kod tematu | Kod przyczyny | Opis |
OPERATION_SMDX_SUBJECT_REASON_CODE |
Ciąg zawiera 3 cyfry rozdzielone kropką, bez zer na początku. Dla:
przykład: 8.1.1 . |
Ciąg zawiera 3 cyfry rozdzielone kropką bez zer na początku. Dla:
przykład: 3.8 . |
SubjectCode[5.2.6.1] i ReasonCode[5.2.6.2] od organizacji GSMA (SGP.22 w wersji 2.2). Dla:
np. SubjectCode o wartości 8.1.1 oraz ReasonCode
3.8 oznacza identyfikator EID
są powiązane z innym urządzeniem. |