Die eUICC-APIs enthalten Fehlercodes, die Apps und Nutzern bei der Behebung von Problemen im Zusammenhang mit dem Herunterladen, Aktivieren, Deaktivieren und Löschen von eSIM-Profilen helfen.
Fehler behandeln
Wenn beim Aufrufen der eUICC API ein Fehler auftritt, wird ein PendingIntent-Callback bereitgestellt und EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
als Schlüssel für den detaillierten Fehlercode verwendet. Ab Android 11 sind die folgenden vier Schlüssel und Werte im resultierenden Intent enthalten:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Enthält Informationen dazu, was schiefgelaufen ist. Beispiele: Herunterladen oder Löschen eines eSIM-Profils. Dieses Feld ist nie leer.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informationen dazu, warum der Fehler aufgetreten ist. Beispiel: Die Anfrage hat das Zeitlimit überschritten oder das Gerät ist an einen Mobilfunkanbieter gebunden. Dieses Feld wird in den folgenden Fällen nicht ausgefüllt:- Der Vorgangscode lautet
OPERATION_SMDX_SUBJECT_REASON_CODE
. - Der Fehler ist ein Low-Level-Fehler wie
IOException
oderInterruptedException
.
- Der Vorgangscode lautet
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Wird mitEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
verwendet, um SubjectCode[5.2.6.1] und ReasonCode[5.2.6.2] von GSMA (SGP.22 v2.2) bereitzustellen. Dieses Feld wird nur ausgefüllt, wenn der VorgangscodeOPERATION_SMDX_SUBJECT_REASON_CODE
ist.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Wird mitEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
verwendet, um SubjectCode[5.2.6.1] und ReasonCode[5.2.6.2] von GSMA (SGP.22 v2.2) bereitzustellen. Dieses Feld wird nur ausgefüllt, wenn der VorgangscodeOPERATION_SMDX_SUBJECT_REASON_CODE
ist.
Mithilfe dieser vier Werte kann der Aufrufer der eUICC-API bestimmte Fehler einzeln 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 Kombinationen aus Vorgang und Fehlercode
In der folgenden Tabelle werden die unterstützten Kombinationen von Vorgangs- und Fehlercodes beschrieben, die vom Assistenten für das lokale Profil (Local Profile Assistant, LPA) zurückgegeben werden.
Kombinationen aus Vorgangs- und Fehlercodes | |||
---|---|---|---|
Vorgangscode | Fehlercode | Beschreibung | |
OPERATION_SYSTEM |
Nicht zutreffend | Es ist ein interner Fehler aufgetreten. Beispielsweise wurde der Thread unterbrochen oder es ist ein IOException -Fehler aufgetreten. |
|
OPERATION_SIM_SLOT |
Nicht zutreffend | Beim Ausführen eines SIM-Karten-Vorgangs ist ein interner Fehler aufgetreten. | |
ERROR_TIME_OUT |
Beim Ausführen eines SIM-Kartensteckplatzvorgangs ist eine Zeitüberschreitung aufgetreten. | ||
ERROR_EUICC_MISSING |
Auf dem Gerät ist keine eUICC verfügbar oder aktiv. | ||
OPERATION_EUICC_CARD |
Nicht zutreffend | Beim Ausführen eines eUICC-Vorgangs 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 verfügbar. Beispielsweise kann die LPA die SIM-Karte nicht erkennen. | ||
OPERATION_SMDX |
Nicht zutreffend | Beim Ausführen eines SM-DP+/SM-DS-Vorgangs 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 |
Schlüsselspeicher- oder Zertifikatsfehler bei Verwendung in der TLS-Verbindung zur Überprüfung. | ||
ERROR_NO_PROFILES_AVAILABLE |
Keine Profile von SM-DP+ 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 |
Nicht zutreffend | Beim Ausführen eines Schaltvorgangs ist ein interner Fehler aufgetreten. | |
ERROR_CARRIER_LOCKED |
Das Profil kann nicht gewechselt werden, da das Gerät an einen Mobilfunkanbieter gebunden ist (SIM-Lock). | ||
OPERATION_DOWNLOAD |
Nicht zutreffend | Beim Ausführen eines Downloadvorgangs ist ein interner Fehler aufgetreten. | |
ERROR_DISALLOWED_BY_PPR |
Die Autorisierungstabelle für Regeln auf der eUICC ist leer oder der Download ist durch die Profilrichtlinienregel nicht zulässig. | ||
ERROR_INVALID_ACTIVATION_CODE |
Beim Parsen des Aktivierungscodes ist ein Fehler aufgetreten (ungültiges Format) oder es wurde versucht, ohne Aktivierungscode herunterzuladen. | ||
ERROR_CARRIER_LOCKED |
Der Download ist nicht zulässig, da das Gerät an einen Mobilfunkanbieter gebunden ist (SIM-Lock). | ||
ERROR_INCOMPATIBLE_CARRIER |
Der Mobilfunkanbieter steht auf der Sperrliste und das 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 SIM-Statusänderungen auslösen könnten. | ||
OPERATION_METADATA |
Nicht zutreffend | 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 Mobilfunkanbieter befindet sich auf der Sperrliste und die LPA kann das Profil dieses Mobilfunkanbieters nicht von SM-DP+/SM-DS herunterladen. | ||
OPERATION_EUICC_GSMA |
Nicht zutreffend | Beim Ausführen eines eUICC-GSMA-Vorgangs ist ein interner Fehler aufgetreten. | |
ERROR_INSTALL_PROFILE |
Fehler mit der eUICC beim Installieren des Profils. Das Profil ist beispielsweise bereits vorhanden oder die ICCID stimmt nicht überein. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Fehler mit der eUICC beim Installieren des Profils. Nicht genügend Speicherplatz auf dem eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Fehler mit der eUICC beim Installieren des Profils. Gemäß der Profilrichtlinienregel nicht zulässig. | ||
OPERATION_APDU |
Nicht zutreffend | Beim Ausführen eines APDU-Vorgangs ist ein interner Fehler aufgetreten. | |
OPERATION_HTTP |
1-999 |
Der Fehlercode ist ein HTTP-Fehlerwert. | |
Vorgangscode | Betreffcode | Ursachencode | Beschreibung |
OPERATION_SMDX_SUBJECT_REASON_CODE |
Der String enthält drei Ziffern, die durch einen Punkt getrennt sind, ohne führende Nullen. Beispiel: 8.1.1 |
Der String enthält drei Ziffern, die durch einen Punkt getrennt sind, ohne führende Nullen. Beispiel: 3.8 |
SubjectCode[5.2.6.1] und ReasonCode[5.2.6.2] von der GSMA (SGP.22 v2.2). Beispiel: Ein SubjectCode von 8.1.1 und ein ReasonCode von 3.8 bedeuten, dass die EID an ein anderes Gerät gebunden ist. |