eUICC API'leri, uygulamaların ve kullanıcıların eSIM profillerini indirme, etkinleştirme, devre dışı bırakma ve silmeyle ilgili sorunları gidermelerine 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 niyet 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 başlayarak, ortaya çıkan amaca aşağıdaki dört anahtar ve değer dahil edilmiştir:
-
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Neyin yanlış gittiğine ilişkin bilgi sağlar. Örneğin, bir eSIM profilinin indirilmesi veya silinmesi. Bu alan hiçbir zaman boş değildir. EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Hatanın neden oluştuğuna ilişkin bilgi. Ö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
: Birlikte GSMA'dan (SGP.22 v2.2) SubjectCode[5.2.6.1] ve ReasonCode[5.2.6.2] sağlayanEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
ile birlikte kullanılır. Bu alan yalnızca işlem koduOPERATION_SMDX_SUBJECT_REASON_CODE
olduğunda doldurulur.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Birlikte GSMA'dan (SGP.22 v2.2) SubjectCode[5.2.6.1] ve ReasonCode[5.2.6.2] sağlayanEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
ile birlikte kullanılır. Bu alan yalnızca işlem koduOPERATION_SMDX_SUBJECT_REASON_CODE
olduğunda doldurulur.
Bu dört değer, eUICC API'yi çağıran kişinin belirli hataları ayrı ayrı ele almasına olanak tanır. Aşağıda bu hataların nasıl ele alınacağına ilişkin 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 kodları kombinasyonu açıklanmaktadır.
Operasyon ve hata kodu kombinasyonları | |||
---|---|---|---|
Operasyon kodu | Hata kodu | Tanım | |
OPERATION_SYSTEM | Uygulanamaz | Dahili bir hata oluştu. Örneğin iş parçacığı kesildi veya bir IOException hatası oluştu. | |
OPERATION_SIM_SLOT | Uygulanamaz | SIM yuvası işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_TIME_OUT | SIM yuvası işlemi gerçekleştirilmeye çalışılırken zaman aşımına uğradı. | ||
ERROR_EUICC_MISSING | Cihazda eUICC mevcut veya etkin değil. | ||
OPERATION_EUICC_CARD | Uygulanamaz | Bir 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 mevcut değildir. Örneğin, LPA SIM kartı algılayamıyor. | ||
OPERATION_SMDX | Uygulanamaz | SM-DP+/SM-DS işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_ADDRESS_MISSING | Profili indirecek 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+'da profil mevcut değil. | ||
ERROR_CONNECTION_ERROR | Sunucuyla bağlantı oluşturulamıyor. | ||
ERROR_INVALID_RESPONSE | SM-DP+/SM-DS sunucusundan geçersiz yanıt. | ||
OPERATION_SWITCH | Uygulanamaz | Bir anahtar işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_CARRIER_LOCKED | Cihaz operatör kilitli olduğundan (SIM kilitli) profil değiştirmeye izin verilmiyor. | ||
OPERATION_DOWNLOAD | Uygulanamaz | İndirme işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_DISALLOWED_BY_PPR | eUICC'deki Kural Yetkilendirme Tablosu boş veya profil politikası kuralı tarafından indirmeye 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 kilitli olduğundan (SIM kilitli) indirmeye izin verilmiyor. | ||
ERROR_INCOMPATIBLE_CARRIER | Operatör kara listede ve 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 hiçbir eyleme izin verilmiyor. | ||
OPERATION_METADATA | Uygulanamaz | 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 listede ve LPA bu operatörün profilini SM-DP+/SM-DS'den indiremiyor. | ||
OPERATION_EUICC_GSMA | Uygulanamaz | eUICC GSMA işlemi gerçekleştirilirken dahili bir hata oluştu. | |
ERROR_INSTALL_PROFILE | Profili yüklemeye çalışırken eUICC hatası. Örneğin, profil zaten mevcut veya ICCID eşleşmiyor. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY | Profili yüklemeye çalışırken eUICC hatası. eUICC'de yeterli bellek yok. | ||
ERROR_DISALLOWED_BY_PPR | Profili yüklemeye çalışırken eUICC hatası. Profil politikası kuralı tarafından izin verilmiyor. | ||
OPERATION_APDU | Uygulanamaz | APDU işlemi gerçekleştirilirken dahili bir hata oluştu. | |
OPERATION_HTTP | 1-999 | Hata kodu bir HTTP hata değeridir. | |
Operasyon kodu | Konu kodu | Sebep kodu | Tanım |
OPERATION_SMDX_SUBJECT_REASON_CODE | Dize, başında sıfır olmayan, noktayla ayrılmış 3 rakamdan oluşur. Örneğin, 8.1.1 . | Dize, başında sıfır olmayan, noktayla ayrılmış 3 rakamdan oluşur. Örneğin, 3.8 . | GSMA'dan SubjectCode[5.2.6.1] ve ReasonCode[5.2.6.2] (SGP.22 v2.2). Örneğin SubjectCode 8.1.1 ve ReasonCode 3.8 , EID'nin başka bir cihaza bağlı olduğu anlamına gelir. |