eUICC API'leri, uygulamaların ve kullanıcıların eSIM profillerinin indirilmesi, etkinleştirilmesi, devre dışı bırakılması ve silinmesiyle ilgili sorunları gidermesine yardımcı olmak için hata kodları sağlar.
Hataları işleme
eUICC API çağrılırken bir hata oluştuğunda bekleyen amaç geri çağrısı sağlanır ve ayrıntılı hata kodunu almak için anahtar olarak EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
kullanılır. Android 11'den itibaren, sonuçtaki amaçta aşağıdaki dört anahtar ve değer yer alır:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Neyin yanlış gittiği hakkında bilgi verir. Örneğin, eSIM profili indirme veya silme. Bu alan asla boş değildir.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Hataya neden olan durumla ilgili bilgiler. Örneğin, istek zaman aşımına uğradı veya cihaz operatör tarafından kilitlendi. Bu alan aşağıdaki durumlarda doldurulmaz:- İşlem kodu:
OPERATION_SMDX_SUBJECT_REASON_CODE
. - Hata,
IOException
veyaInterruptedException
gibi düşük düzeyli bir hatadır.
- İşlem kodu:
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
:EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
ile birlikte kullanılır. Bu iki alan, GSMA'dan (SGP.22 v2.2) SubjectCode[5.2.6.1] ve ReasonCode[5.2.6.2] değerlerini sağlar. Bu alan yalnızca işlem koduOPERATION_SMDX_SUBJECT_REASON_CODE
olduğunda doldurulur.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
:EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
ile birlikte kullanılır. Bu iki alan, GSMA'dan (SGP.22 v2.2) SubjectCode[5.2.6.1] ve ReasonCode[5.2.6.2] değerlerini sağlar. Bu alan yalnızca işlem koduOPERATION_SMDX_SUBJECT_REASON_CODE
olduğunda doldurulur.
Bu dört değer, eUICC API'yi çağıranın belirli hataları ayrı ayrı işlemesine olanak tanır. Aşağıda, bu hataların nasıl ele alınacağına dair bir örnek verilmiştir.
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.
}
Desteklenen işlem ve hata kodu kombinasyonları
Aşağıdaki tabloda, yerel profil asistanından (LPA) döndürülen desteklenen işlem ve hata kodu kombinasyonu açıklanmaktadır.
İşlem ve hata kodu kombinasyonları | |||
---|---|---|---|
İşlem kodu | Hata kodu | Açıklama | |
OPERATION_SYSTEM |
Geçerli değil | Dahili bir hata oluştu. Örneğin, ileti dizisi kesintiye uğramış veya IOException hatası oluşmuş olabilir. |
|
OPERATION_SIM_SLOT |
Geçerli değil | SIM yuvası işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_TIME_OUT |
SIM kart yuvası işlemi gerçekleştirilmeye çalışılırken zaman aşımı oluştu. | ||
ERROR_EUICC_MISSING |
Cihazda eUICC yok veya eUICC etkin değil. | ||
OPERATION_EUICC_CARD |
Geçerli değil | eUICC işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_UNSUPPORTED_VERSION |
eUICC (çip) sürümü ve EuiccCard (yazılım) sürümü uyumlu değil. | ||
ERROR_EUICC_MISSING |
Cihazda SIM kart yok. Örneğin, LPA, SIM kartı algılayamaz. | ||
OPERATION_SMDX |
Geçerli değil | SM-DP+/SM-DS işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_ADDRESS_MISSING |
Profili indirmek için SM-DP+ adresi yok. | ||
ERROR_INVALID_CONFIRMATION_CODE |
Etkinleştirme kodu ayrıştırılırken bir hata oluştu (geçersiz biçim). | ||
ERROR_CERTIFICATE_ERROR |
Doğrulama için TLS bağlantısında kullanıldığında anahtar deposu veya sertifika hatası. | ||
ERROR_NO_PROFILES_AVAILABLE |
SM-DP+ tarafından sunulan profil yok. | ||
ERROR_CONNECTION_ERROR |
Sunucuya bağlantı oluşturulamıyor. | ||
ERROR_INVALID_RESPONSE |
SM-DP+/SM-DS sunucusundan geçersiz yanıt alındı. | ||
OPERATION_SWITCH |
Geçerli değil | Anahtarlama işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_CARRIER_LOCKED |
Cihaz, operatör tarafından kilitlendiği (SIM kilitli) için profil değiştirmenize izin verilmiyor. | ||
OPERATION_DOWNLOAD |
Geçerli değil | İndirme işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_DISALLOWED_BY_PPR |
eUICC'deki Kurallar Yetkilendirme Tablosu boş veya indirmeye profil politikası kuralı tarafından izin verilmiyor. | ||
ERROR_INVALID_ACTIVATION_CODE |
Etkinleştirme kodu ayrıştırılırken (geçersiz biçim) veya etkinleştirme kodu olmadan indirmeye çalışılırken bir hata oluştu. | ||
ERROR_CARRIER_LOCKED |
Cihaz, operatör kilidiyle (SIM kilidi) kullanıldığı için indirmeye izin verilmiyor. | ||
ERROR_INCOMPATIBLE_CARRIER |
Operatör kara listede olduğundan LPA, SM-DP+/SM-DS'den profil indiremiyor. | ||
ERROR_OPERATION_BUSY |
Profil indirme işlemi devam ediyor ve SIM durumu değişikliklerini tetikleyebilecek başka bir işleme izin verilmiyor. | ||
OPERATION_METADATA |
Geçerli değil | Meta veri işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_INVALID_ACTIVATION_CODE |
Abonelik meta verileri boş veya abonelik meta verilerindeki etkinleştirme kodu boş ya da geçersiz. | ||
ERROR_INCOMPATIBLE_CARRIER |
Operatör kara listede olduğundan LPA, bu operatörün profilini SM-DP+/SM-DS'den indiremiyor. | ||
OPERATION_EUICC_GSMA |
Geçerli değil | Bir eUICC GSMA işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_INSTALL_PROFILE |
Profil yüklenmeye çalışılırken eUICC ile ilgili hata oluştu. Örneğin, profil zaten vardır veya ICCID eşleşmiyordur. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Profil yüklenmeye çalışılırken eUICC ile ilgili hata oluştu. eUICC'de yeterli bellek yok. | ||
ERROR_DISALLOWED_BY_PPR |
Profil yüklenmeye çalışılırken eUICC ile ilgili hata oluştu. Profil politikası kuralı nedeniyle izin verilmiyor. | ||
OPERATION_APDU |
Geçerli değil | APDU işlemi gerçekleştirilirken dahili bir hata oluştu. | |
OPERATION_HTTP |
1-999 |
Hata kodu, bir HTTP hata değeridir. | |
İşlem kodu | Konu kodu | Neden kodu | Açıklama |
OPERATION_SMDX_SUBJECT_REASON_CODE |
Dize, başında sıfır olmayan ve nokta ile ayrılmış 3 basamaklı sayılar içerir. Örneğin, 8.1.1 . |
Dize, başında sıfır olmayan ve nokta ile ayrılmış 3 rakam içeriyor. Örneğin, 3.8 . |
GSMA'dan (SGP.22 v2.2) SubjectCode[5.2.6.1] ve ReasonCode[5.2.6.2]. Örneğin, 8.1.1 SubjectCode'u ve 3.8 ReasonCode'u, EID'nin başka bir cihaza bağlı olduğu anlamına gelir. |