Die eUICC-APIs stellen Fehlercodes bereit, um Apps und Benutzern bei der Behebung von Problemen im Zusammenhang mit dem Herunterladen, Aktivieren, Deaktivieren und Löschen von eSIM-Profilen zu helfen.
Umgang mit Fehlern
Wenn beim Aufrufen der eUICC-API ein Fehler auftritt, wird ein ausstehender Intent-Callback bereitgestellt und EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
als Schlüssel zum Abrufen des detaillierten Fehlercodes verwendet. Ab Android 11 sind die folgenden vier Schlüssel und Werte im resultierenden Intent enthalten:
-
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Bietet Informationen darüber, was schief gelaufen ist. Zum Beispiel das Herunterladen oder Löschen eines eSIM-Profils. Dieses Feld ist niemals leer. EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informationen darüber, warum der Fehler aufgetreten ist. Beispielsweise ist die Anforderung abgelaufen oder das Gerät ist vom Netzbetreiber gesperrt. Dieses Feld wird in den folgenden Fällen nicht ausgefüllt:- Der Operationscode ist
OPERATION_SMDX_SUBJECT_REASON_CODE
. - Der Fehler ist ein Low-Level-Fehler wie
IOException
oderInterruptedException
.
- Der Operationscode ist
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Wird mitEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
verwendet, die zusammen den SubjectCode[5.2.6.1] und den ReasonCode[5.2.6.2] von GSMA (SGP.22 v2.2) bereitstellen. Dieses Feld wird nur ausgefüllt, wenn der OperationscodeOPERATION_SMDX_SUBJECT_REASON_CODE
lautet.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Wird mitEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
verwendet, die zusammen den SubjectCode[5.2.6.1] und den ReasonCode[5.2.6.2] von GSMA (SGP.22 v2.2) bereitstellen. Dieses Feld wird nur ausgefüllt, wenn der OperationscodeOPERATION_SMDX_SUBJECT_REASON_CODE
lautet.
Diese vier Werte ermöglichen es dem Aufrufer der eUICC-API, bestimmte Fehler individuell zu behandeln. Im Folgenden finden Sie ein Beispiel für den Umgang mit diesen Fehlern.
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.
}
Unterstützte Betriebs- und Fehlercodekombinationen
Die folgende Tabelle beschreibt die unterstützte Kombination von Betriebs- und Fehlercodes, die vom lokalen Profilassistenten (LPA) zurückgegeben werden.
Kombinationen von Betriebs- und Fehlercodes | |||
---|---|---|---|
Operationscode | Fehlercode | Beschreibung | |
OPERATION_SYSTEM | Unzutreffend | Ein interner Fehler ist aufgetreten. Beispielsweise wurde der Thread unterbrochen oder es ist ein IOException Fehler aufgetreten. | |
OPERATION_SIM_SLOT | Unzutreffend | Beim Ausführen eines SIM-Slot-Vorgangs ist ein interner Fehler aufgetreten. | |
ERROR_TIME_OUT | Beim Versuch, einen SIM-Slot-Vorgang durchzuführen, ist eine Zeitüberschreitung aufgetreten. | ||
ERROR_EUICC_MISSING | Auf dem Gerät ist kein eUICC verfügbar oder aktiv. | ||
OPERATION_EUICC_CARD | Unzutreffend | Beim Ausführen einer eUICC-Operation ist ein interner Fehler aufgetreten. | |
ERROR_UNSUPPORTED_VERSION | Die eUICC-Version (Chip) und die EuiccCard-Version (Software) sind nicht kompatibel. | ||
ERROR_EUICC_MISSING | Im Gerät ist keine SIM-Karte vorhanden. Beispielsweise kann der LPA die SIM-Karte nicht erkennen. | ||
OPERATION_SMDX | Unzutreffend | Beim Ausführen einer SM-DP+/SM-DS-Operation ist ein interner Fehler aufgetreten. | |
ERROR_ADDRESS_MISSING | Keine SM-DP+-Adresse zum Herunterladen des Profils. | ||
ERROR_INVALID_CONFIRMATION_CODE | Beim Parsen des Aktivierungscodes ist ein Fehler aufgetreten (ungültiges Format). | ||
ERROR_CERTIFICATE_ERROR | Keystore- oder Zertifikatsfehler bei Verwendung in einer TLS-Verbindung zur Überprüfung. | ||
ERROR_NO_PROFILES_AVAILABLE | Von SM-DP+ sind keine Profile verfügbar. | ||
ERROR_CONNECTION_ERROR | Es kann keine Verbindung zum Server hergestellt werden. | ||
ERROR_INVALID_RESPONSE | Ungültige Antwort vom SM-DP+/SM-DS-Server. | ||
OPERATION_SWITCH | Unzutreffend | Beim Ausführen einer Schaltoperation ist ein interner Fehler aufgetreten. | |
ERROR_CARRIER_LOCKED | Profilwechsel nicht zulässig, da das Gerät vom Netzbetreiber gesperrt ist (SIM-gesperrt). | ||
OPERATION_DOWNLOAD | Unzutreffend | Beim Ausführen eines Download-Vorgangs ist ein interner Fehler aufgetreten. | |
ERROR_DISALLOWED_BY_PPR | Die Regelautorisierungstabelle im eUICC ist null oder der Download ist durch die Profilrichtlinienregel nicht zulässig. | ||
ERROR_INVALID_ACTIVATION_CODE | Beim Parsen des Aktivierungscodes (ungültiges Format) oder beim Versuch, ihn ohne Aktivierungscode herunterzuladen, ist ein Fehler aufgetreten. | ||
ERROR_CARRIER_LOCKED | Der Download ist nicht erlaubt, da das Gerät vom Netzbetreiber gesperrt ist (SIM-gesperrt). | ||
ERROR_INCOMPATIBLE_CARRIER | Der Netzbetreiber steht auf der Blacklist und die LPA kann kein Profil von SM-DP+/SM-DS herunterladen. | ||
ERROR_OPERATION_BUSY | Der Profil-Download läuft und es sind keine anderen Aktionen zulässig, die Änderungen des SIM-Status auslösen könnten. | ||
OPERATION_METADATA | Unzutreffend | Beim Ausführen des Metadatenvorgangs ist ein interner Fehler aufgetreten. | |
ERROR_INVALID_ACTIVATION_CODE | Die Abonnementmetadaten sind leer oder der Aktivierungscode in den Abonnementmetadaten ist leer oder ungültig. | ||
ERROR_INCOMPATIBLE_CARRIER | Der Netzbetreiber steht auf der schwarzen Liste und die LPA kann das Profil dieses Netzbetreibers nicht von SM-DP+/SM-DS herunterladen. | ||
OPERATION_EUICC_GSMA | Unzutreffend | Beim Ausführen einer eUICC GSMA-Operation ist ein interner Fehler aufgetreten. | |
ERROR_INSTALL_PROFILE | Fehler mit eUICC beim Versuch, das Profil zu installieren. Beispielsweise existiert das Profil bereits oder die ICCID stimmt nicht überein. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY | Fehler mit eUICC beim Versuch, das Profil zu installieren. Nicht genügend Speicher auf dem eUICC. | ||
ERROR_DISALLOWED_BY_PPR | Fehler mit eUICC beim Versuch, das Profil zu installieren. Durch die Profilrichtlinienregel nicht zulässig. | ||
OPERATION_APDU | Unzutreffend | Beim Ausführen einer APDU-Operation ist ein interner Fehler aufgetreten. | |
OPERATION_HTTP | 1-999 | Fehlercode ist ein HTTP-Fehlerwert. | |
Operationscode | Betreffcode | Ursachencode | Beschreibung |
OPERATION_SMDX_SUBJECT_REASON_CODE | Die Zeichenfolge enthält 3 durch einen Punkt getrennte Ziffern ohne führende Nullen. Zum Beispiel 8.1.1 . | Die Zeichenfolge enthält 3 durch einen Punkt getrennte Ziffern ohne führende Nullen. Zum Beispiel 3.8 . | SubjectCode[5.2.6.1] und ReasonCode[5.2.6.2] von GSMA (SGP.22 v2.2). Beispielsweise bedeutet ein SubjectCode von 8.1.1 und ein ReasonCode von 3.8 , dass die EID an ein anderes Gerät gebunden ist. |