Obsługa błędów eUICC API

Interfejsy API eUICC udostępniają kody błędów, które pomagają aplikacjom i użytkownikom rozwiązywać problemy związane z pobieraniem, włączaniem, wyłączaniem i usuwaniem profili eSIM.

Obsługa błędów

Gdy podczas wywoływania interfejsu API eUICC wystąpi błąd, dostarczane jest oczekujące wywołanie zwrotne, a kluczem do uzyskania szczegółowego kodu błędu jest EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE . Począwszy od Androida 11, w wynikowej intencji uwzględniane są następujące cztery klucze i wartości:

Te cztery wartości pozwalają wywołującemu API eUICC na indywidualną obsługę określonych błędów. Poniżej znajduje się przykład postępowania z tymi błędami.

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łędów

W poniższej tabeli opisano obsługiwaną kombinację kodów operacji i błędów zwracanych przez asystenta profilu lokalnego (LPA).

Kombinacje operacji i kodów 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ł błąd IOException .
OPERATION_SIM_SLOT Nie dotyczy Wystąpił błąd wewnętrzny podczas wykonywania operacji na gnieździe SIM.
ERROR_TIME_OUT Upłynął limit czasu podczas próby wykonania operacji na gnieździe SIM.
ERROR_EUICC_MISSING Na urządzeniu nie jest dostępny ani aktywny żaden eUICC.
OPERATION_EUICC_CARD Nie dotyczy Wystąpił błąd wewnętrzny podczas wykonywania operacji eUICC.
ERROR_UNSUPPORTED_VERSION Wersja eUICC (chip) i wersja EuiccCard (oprogramowanie) nie są kompatybilne.
ERROR_EUICC_MISSING W urządzeniu nie ma dostępnej karty SIM. Na przykład LPA nie może wykryć karty SIM.
OPERATION_SMDX Nie dotyczy Wystąpił błąd wewnętrzny podczas wykonywania operacji SM-DP+/SM-DS.
ERROR_ADDRESS_MISSING Brak adresu SM-DP+ do pobrania profilu.
ERROR_INVALID_CONFIRMATION_CODE Wystąpił błąd podczas analizowania kodu aktywacyjnego (nieprawidłowy format).
ERROR_CERTIFICATE_ERROR Błąd magazynu kluczy lub certyfikatu, gdy jest używany w połączeniu TLS w celu weryfikacji.
ERROR_NO_PROFILES_AVAILABLE Brak dostępnych profili w 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 Wystąpił błąd wewnętrzny podczas wykonywania operacji przełączania.
ERROR_CARRIER_LOCKED Nie można zmienić profilu, ponieważ urządzenie jest zablokowane przez operatora (zablokowana karta SIM).
OPERATION_DOWNLOAD Nie dotyczy Wystąpił błąd wewnętrzny podczas operacji pobierania.
ERROR_DISALLOWED_BY_PPR Tabela autoryzacji reguł w eUICC ma wartość null lub pobieranie jest zabronione przez regułę polityki profilu.
ERROR_INVALID_ACTIVATION_CODE Wystąpił błąd podczas analizowania kodu aktywacyjnego (nieprawidłowy format) lub podczas próby pobrania bez kodu aktywacyjnego.
ERROR_CARRIER_LOCKED Nie można pobierać, ponieważ urządzenie jest zablokowane przez operatora (zablokowana karta SIM).
ERROR_INCOMPATIBLE_CARRIER Operator znajduje się na czarnej liście i LPA nie może pobrać profilu z SM-DP+/SM-DS.
ERROR_OPERATION_BUSY Trwa pobieranie profilu i nie są dozwolone żadne inne działania, które mogłyby spowodować zmianę stanu karty SIM.
OPERATION_METADATA Nie dotyczy Wystąpił błąd wewnętrzny podczas wykonywania operacji na metadanych.
ERROR_INVALID_ACTIVATION_CODE Metadane subskrypcji są puste lub kod aktywacyjny w metadanych subskrypcji jest pusty lub nieprawidłowy.
ERROR_INCOMPATIBLE_CARRIER Operator znajduje się na czarnej liście i LPA nie może pobrać profilu tego operatora z SM-DP+/SM-DS.
OPERATION_EUICC_GSMA Nie dotyczy Wystąpił błąd wewnętrzny podczas wykonywania operacji eUICC GSMA.
ERROR_INSTALL_PROFILE Błąd eUICC podczas próby zainstalowania profilu. Na przykład profil już istnieje lub identyfikator ICCID nie jest zgodny.
ERROR_EUICC_INSUFFICIENT_MEMORY Błąd eUICC podczas próby zainstalowania profilu. Za mało pamięci w eUICC.
ERROR_DISALLOWED_BY_PPR Błąd eUICC podczas próby zainstalowania profilu. Niedozwolone przez regułę zasad profilu.
OPERATION_APDU Nie dotyczy Wystąpił błąd wewnętrzny podczas wykonywania operacji APDU.
OPERATION_HTTP 1-999 Kod błędu to wartość błędu HTTP.
Kod operacji Kod tematu Kod powodu Opis
OPERATION_SMDX_SUBJECT_REASON_CODE Ciąg zawiera 3 cyfry oddzielone kropką, bez zer wiodących. Na przykład 8.1.1 . Ciąg zawiera 3 cyfry oddzielone kropką, bez zer wiodących. Na przykład 3.8 . Kod podmiotu [5.2.6.1] i kod przyczyny [5.2.6.2] z GSMA (SGP.22 v2.2). Na przykład kod podmiotu 8.1.1 i kod przyczyny 3.8 oznaczają, że identyfikator EID jest powiązany z innym urządzeniem.