Umgang mit eUICC API-Fehlern

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:

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.