Die eUICC-APIs liefern Fehlercodes, mit denen Apps und Nutzer Probleme beim Herunterladen, Aktivieren, Deaktivieren und Löschen von eSIM-Profilen beheben können.
Fehler verarbeiten
Wenn beim Aufrufen der eUICC API ein Fehler auftritt, wird ein ausstehender Intent-Callback bereitgestellt und
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
als Schlüssel verwendet, um den detaillierten Fehlercode abzurufen. 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. Beispiel: 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 ist
OPERATION_SMDX_SUBJECT_REASON_CODE. - Der Fehler ist ein Fehler auf niedriger Ebene, z. B.
IOExceptionoderInterruptedException.
- Der Vorgangscode ist
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE: Wird mitEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODEverwendet, um zusammen den 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 Vorgangscode istOPERATION_SMDX_SUBJECT_REASON_CODE.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE: Wird mitEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODEverwendet, um zusammen den 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 Vorgangscode istOPERATION_SMDX_SUBJECT_REASON_CODE.
Mit diesen vier Werten kann der Aufrufer der eUICC API bestimmte Fehler einzeln behandeln. Im Folgenden finden Sie ein Beispiel für die Behandlung dieser Fehler.
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 von Vorgangs- und Fehlercodes
In der folgenden Tabelle werden die unterstützten Kombinationen von Vorgangs- und Fehlercodes beschrieben, die vom lokalen Profilassistenten (Local Profile Assistant, LPA) zurückgegeben werden.
| Kombinationen von Vorgangs- und Fehlercodes | |||
|---|---|---|---|
| Vorgangscode | Fehlercode | Beschreibung | |
OPERATION_SYSTEM |
Nicht zutreffend | Ein interner Fehler ist aufgetreten. Beispiel: Der Thread wurde unterbrochen oder ein IOException-Fehler ist aufgetreten. |
|
OPERATION_SIM_SLOT |
Nicht zutreffend | Beim Ausführen eines Vorgangs für den SIM-Kartensteckplatz ist ein interner Fehler aufgetreten. | |
ERROR_TIME_OUT |
Zeitüberschreitung beim Ausführen eines Vorgangs für den SIM-Kartensteckplatz. | ||
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 |
Auf dem Gerät ist keine SIM-Karte verfügbar. Beispiel: Der LPA kann 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 |
Keystore- 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 |
Verbindung zum Server kann nicht hergestellt werden. | ||
ERROR_INVALID_RESPONSE |
Ungültige Antwort vom SM-DP+/SM-DS-Server. | ||
OPERATION_SWITCH |
Nicht zutreffend | Beim Ausführen eines Switch-Vorgangs ist ein interner Fehler aufgetreten. | |
ERROR_CARRIER_LOCKED |
Das Profil kann nicht gewechselt werden, da das Gerät an einen Mobilfunkanbieter gebunden ist (SIM-Sperre). | ||
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 null 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-Sperre). | ||
ERROR_INCOMPATIBLE_CARRIER |
Der Mobilfunkanbieter befindet sich auf der Blacklist und der LPA kann kein Profil von SM-DP+/SM-DS herunterladen. | ||
ERROR_OPERATION_BUSY |
Der Profil-Download wird ausgeführt und es sind keine anderen Aktionen zulässig, die Änderungen am SIM-Status auslösen könnten. | ||
OPERATION_METADATA |
Nicht zutreffend | Beim Ausführen eines Metadatenvorgangs ist ein interner Fehler aufgetreten. | |
ERROR_INVALID_ACTIVATION_CODE |
Die Metadaten des Abos sind leer oder der Aktivierungscode in den Metadaten des Abos ist leer oder ungültig. | ||
ERROR_INCOMPATIBLE_CARRIER |
Der Mobilfunkanbieter befindet sich auf der Blacklist und der 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 eUICC beim Versuch, ein Profil zu installieren. Beispiel: Das Profil ist bereits vorhanden oder die ICCID stimmt nicht überein. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Fehler mit eUICC beim Versuch, ein Profil zu installieren. Nicht genügend Speicherplatz auf der eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Fehler mit eUICC beim Versuch, ein Profil zu installieren. Nicht zulässig gemäß der Profilrichtlinienregel. | ||
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 | SubjectCode | ReasonCode | Beschreibung |
OPERATION_SMDX_SUBJECT_REASON_CODE |
Die String enthält drei durch einen Punkt getrennte Ziffern ohne führende Nullen. Beispiel: 8.1.1. |
Die String enthält drei durch einen Punkt getrennte Ziffern ohne führende Nullen. Beispiel: 3.8. |
SubjectCode[5.2.6.1] und ReasonCode[5.2.6.2] von 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. |