eUICC API'leri uygulamaların ve kullanıcıların eSIM profillerini indirme, etkinleştirme, devre dışı bırakma ve silme ile ilgili sorunları gidermelerine yardımcı olmak için hata kodları sağlar.
Hataları işleme
eUICC API çağrılırken bir hata oluşursa bekleyen intent geri çağırması sağlanır ve ayrıntılı hata kodunu alma anahtarı olarak EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
kullanılır. Android 11'den itibaren aşağıdaki dört anahtar ve değer, sonuç amacına dahil edilmiştir:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Ne tür bir hata oluştuğu hakkında bilgi sağlar. Örneğin, eSIM profili indirme veya silme. Bu alan hiçbir zaman boş değildir.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 çağrısı yapan kişinin 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 etkin veya kullanılabilir eUICC yok. | ||
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 yürütülürken dahili bir hata oluştu. | |
ERROR_ADDRESS_MISSING |
Profili indirilecek 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+ tarafından kullanılabilir profil yok. | ||
ERROR_CONNECTION_ERROR |
Sunucuyla 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 | 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 verilerinin içindeki 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ı izin vermiyor. | ||
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 SubjectCode ve 3.8 ReasonCode değerleri, EID'nin başka bir cihaza bağlı olduğu anlamına gelir. |