Die eUICC APIs enthalten Fehlercodes, die Apps und Nutzern bei der Behebung von Problemen beim Herunterladen, Aktivieren, Deaktivieren und Löschen von eSIM-Profilen helfen.
Fehler behandeln
Wenn beim Aufrufen der eUICC API ein Fehler auftritt, wird ein Pending Intent-Callback bereitgestellt und EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
wird als Schlüssel zum Abrufen des detaillierten Fehlercodes verwendet. Ab Android 11 sind die folgenden vier Schlüssel und Werte in der resultierenden Intent-Anfrage enthalten:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Liefert Informationen zum Fehler. z. B. das Herunterladen oder Löschen eines eSIM-Profils. Dieses Feld ist nie leer.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informationen dazu, warum der Fehler aufgetreten ist. Beispielsweise ist die Anfrage abgelaufen oder das Gerät ist vom Mobilfunkanbieter gesperrt. Dieses Feld wird in folgenden Fällen nicht ausgefüllt:- Der Vorgangscode lautet
OPERATION_SMDX_SUBJECT_REASON_CODE
. - Bei dem Fehler handelt es sich um einen untergeordneten Fehler wie
IOException
oderInterruptedException
.
- Der Vorgangscode lautet
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Wird mitEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
verwendet, um den SubjectCode[5.2.6.1] und den ReasonCode[5.2.6.2] von GSMA (SGP.22 v2.2) anzugeben. 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 den SubjectCode[5.2.6.1] und den ReasonCode[5.2.6.2] von GSMA (SGP.22 v2.2) anzugeben. Dieses Feld wird nur ausgefüllt, wenn der VorgangscodeOPERATION_SMDX_SUBJECT_REASON_CODE
ist.
Mit diesen vier Werten kann der Aufrufer der eUICC API bestimmte Fehler individuell verarbeiten. Im folgenden Beispiel wird gezeigt, wie Sie mit diesen Fehlern umgehen.
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 Operationen und Fehlercodes
In der folgenden Tabelle werden die unterstützten Kombinationen von Vorgangs- und Fehlercodes beschrieben, die vom lokalen Profilassistenten (LPA) zurückgegeben werden.
Vorgangs- und Fehlercode-Kombinationen | |||
---|---|---|---|
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 | Bei einem SIM-Slot-Vorgang ist ein interner Fehler aufgetreten. | |
ERROR_TIME_OUT |
Zeitüberschreitung beim Ausführen eines SIM-Slot-Vorgangs. | ||
ERROR_EUICC_MISSING |
Auf dem Gerät ist keine eUICC verfügbar oder aktiv. | ||
OPERATION_EUICC_CARD |
Nicht zutreffend | Bei der Ausführung 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 vorhanden. Beispielsweise kann die LPA die SIM-Karte nicht erkennen. | ||
OPERATION_SMDX |
Nicht zutreffend | Bei der Ausführung 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 einer 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 | Bei der Ausführung eines Schaltvorgangs ist ein interner Fehler aufgetreten. | |
ERROR_CARRIER_LOCKED |
Profilwechsel nicht zulässig, da das Gerät vom Mobilfunkanbieter gesperrt ist (SIM-Sperre). | ||
OPERATION_DOWNLOAD |
Nicht zutreffend | Beim Ausführen eines Downloadvorgangs ist ein interner Fehler aufgetreten. | |
ERROR_DISALLOWED_BY_PPR |
Die Tabelle „Rules Authorization Table“ (Tabelle für die Autorisierung von Regeln) auf der eUICC ist null oder der Download wird durch die Regel der Profilrichtlinie untersagt. | ||
ERROR_INVALID_ACTIVATION_CODE |
Beim Parsen des Aktivierungscodes (ungültiges Format) oder beim Download ohne Aktivierungscode ist ein Fehler aufgetreten. | ||
ERROR_CARRIER_LOCKED |
Der Download ist nicht zulässig, da das Gerät vom Mobilfunkanbieter gesperrt ist (SIM-Sperre). | ||
ERROR_INCOMPATIBLE_CARRIER |
Der Mobilfunkanbieter steht auf der schwarzen Liste und die LPA kann kein Profil von SM-DP+/SM-DS herunterladen. | ||
ERROR_OPERATION_BUSY |
Der Profildownload ist in Bearbeitung und keine anderen Aktionen, die Änderungen des SIM-Status auslösen könnten, sind zulässig. | ||
OPERATION_METADATA |
Nicht zutreffend | Beim Ausführen des Metadatenvorgangs ist ein interner Fehler aufgetreten. | |
ERROR_INVALID_ACTIVATION_CODE |
Die Abometadaten sind leer oder der Aktivierungscode in den Abometadaten ist leer oder ungültig. | ||
ERROR_INCOMPATIBLE_CARRIER |
Der Mobilfunkanbieter steht auf der schwarzen Liste und der LPA kann das Profil dieses Mobilfunkanbieters nicht von SM-DP+/SM-DS herunterladen. | ||
OPERATION_EUICC_GSMA |
Nicht zutreffend | Bei der Ausführung eines eUICC-GSMA-Vorgangs ist ein interner Fehler aufgetreten. | |
ERROR_INSTALL_PROFILE |
Fehler mit eUICC beim Installieren des Profils Beispielsweise ist das Profil bereits vorhanden oder die ICCID stimmt nicht überein. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Fehler mit eUICC beim Installieren des Profils Nicht genügend Speicherplatz auf der eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Fehler mit eUICC beim Installieren des Profils Nicht zulässig gemäß der Richtlinie für Profile. | ||
OPERATION_APDU |
Nicht zutreffend | Bei der Ausführung eines APDU-Vorgangs ist ein interner Fehler aufgetreten. | |
OPERATION_HTTP |
1-999 |
Der Fehlercode ist ein HTTP-Fehlerwert. | |
Vorgangscode | Themencode | 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 . |
String enthält 3 Ziffern, die durch einen Punkt getrennt sind, ohne vorangestellte Nullen. Beispiel: 3.8 . |
SubjectCode[5.2.6.1] und ReasonCode[5.2.6.2] von der GSMA (SGP.22 v2.2) Beispiel: Der SubjectCode 8.1.1 und der ReasonCode 3.8 bedeuten, dass die EID an ein anderes Gerät gebunden ist. |