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 IOExceptionoderInterruptedException.
 
- Der Vorgangscode lautet 
- EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE: Wird mit- EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODEverwendet, 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 Vorgangscode- OPERATION_SMDX_SUBJECT_REASON_CODEist.
- EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE: Wird mit- EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODEverwendet, 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 Vorgangscode- OPERATION_SMDX_SUBJECT_REASON_CODEist.
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.1und ein ReasonCode von3.8bedeuten, dass die EID an ein anderes Gerät gebunden ist. | 
