eUICC API'leri, uygulamaların ve kullanıcıların eSIM profillerini indirme, etkinleştirme, devre dışı bırakma ve silmeyle 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 bir intent geri çağırma işlevi sağlanır ve ayrıntılı hata kodunu almak için EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
anahtarı kullanılır. Android 11'den itibaren, oluşturulan intent'e aşağıdaki dört anahtar ve değer dahil edilir:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Neden hata oluştuğu hakkında bilgi sağlar. Örneğin, eSIM profili indirme veya silme. Bu alan hiçbir zaman boş olmaz.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Hatanın neden oluştuğuyla ilgili bilgiler. Örneğin, istek zaman aşımına uğradıysa veya cihaz operatör kilitliyse. Aşağıdaki durumlarda bu alan doldurulmaz:- İşlem kodu
OPERATION_SMDX_SUBJECT_REASON_CODE
. - Hata,
IOException
veyaInterruptedException
gibi düşük düzeyde bir hatadır.
- İşlem kodu
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
:EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
ile birlikte kullanılır. Bu iki parametre birlikte 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 parametre birlikte 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 kullanıcının belirli hataları ayrı ayrı ele almasına 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ı (LPA) tarafından döndürülen işlem ve hata kodlarının desteklenen 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ğradı veya IOException hatası oluştu. |
|
OPERATION_SIM_SLOT |
Geçerli değil | SIM kartı 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 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ğildir. | ||
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 hata oluştu (geçersiz biçim). | ||
ERROR_CERTIFICATE_ERROR |
Doğrulama için TLS bağlantısında kullanıldığında anahtar mağazası veya sertifika hatası. | ||
ERROR_NO_PROFILES_AVAILABLE |
SM-DP+'den profil alınamıyor. | ||
ERROR_CONNECTION_ERROR |
Sunucu bağlantısı oluşturulamıyor. | ||
ERROR_INVALID_RESPONSE |
SM-DP+/SM-DS sunucusundan geçersiz yanıt alındı. | ||
OPERATION_SWITCH |
Geçerli değil | Geçiş işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_CARRIER_LOCKED |
Cihaz operatör kilitli (SIM kilitli) olduğu için profil değiştirmeye 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 Kural Yetkilendirme Tablosu null ise veya indirme işlemine profil politikası kuralı tarafından izin verilmiyorsa. | ||
ERROR_INVALID_ACTIVATION_CODE |
Etkinleştirme kodu ayrıştırılırken (geçersiz biçim) veya etkinleştirme kodu olmadan indirmeye çalışırken hata oluştu. | ||
ERROR_CARRIER_LOCKED |
Cihaz operatör kilitli (SIM kilitli) olduğu için indirmeye izin verilmiyor. | ||
ERROR_INCOMPATIBLE_CARRIER |
Operatör kara listedeyse ve LPA, SM-DP+/SM-DS'den profil indiremez. | ||
ERROR_OPERATION_BUSY |
Profil indirme işlemi devam ediyor ve SIM durumu değişikliklerini tetikleyebilecek başka işlemlere 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 listededir ve LPA, bu operatörün profilini SM-DP+/SM-DS'den indiremez. | ||
OPERATION_EUICC_GSMA |
Geçerli değil | 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. Örneğin, profil zaten mevcuttur veya ICCID eşleşmez. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Profil yüklenmeye çalışılırken eUICC ile ilgili hata. eUICC'de yeterli bellek yok. | ||
ERROR_DISALLOWED_BY_PPR |
Profil yüklenmeye çalışılırken eUICC ile ilgili hata. Profil politikası kuralı tarafından 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şta sıfır olmadan noktayla ayrılmış 3 basamak içerir. Örneğin, 8.1.1 . |
Dize, başında sıfır olmadan noktayla ayrılmış 3 basamak içerir. Ö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 olan bir SubjectCode ve 3.8 olan bir ReasonCode, EID'nin başka bir cihaza bağlı olduğu anlamına gelir. |