Tujuan eUICC API memberikan kode error untuk membantu aplikasi dan pengguna memecahkan masalah yang terkait dengan mendownload, mengaktifkan, menonaktifkan, dan menghapus profil eSIM.
Menangani error
Jika terjadi error saat memanggil eUICC API, callback intent yang tertunda akan
yang Anda sediakan
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
digunakan sebagai kunci untuk
mendapatkan kode {i>error<i} yang terperinci. Mulai dari
Android 11, empat kunci dan nilai berikut adalah
disertakan dalam intent yang dihasilkan:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Memberikan informasi tentang apa yang salah. Misalnya, mengunduh atau menghapus profil eSIM. Kolom ini tidak pernah kosong.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informasi tentang alasan terjadinya error. Misalnya, permintaan memiliki waktu atau perangkat dikunci oleh operator. Bidang ini tidak diisi di kasus berikut:- Kode operasinya adalah
OPERATION_SMDX_SUBJECT_REASON_CODE
- Error merupakan error tingkat rendah seperti
IOException
atauInterruptedException
.
- Kode operasinya adalah
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Digunakan denganEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
, yang bersama-sama memberikan SubjectCode[5.2.6.1] dan reasonCode[5.2.6.2] dari GSMA (SGP.22 v2.2). Kolom ini hanya diisi jika kode operasiOPERATION_SMDX_SUBJECT_REASON_CODE
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Digunakan denganEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
, yang bersama-sama memberikan SubjectCode[5.2.6.1] dan reasonCode[5.2.6.2] dari GSMA (SGP.22 v2.2). Kolom ini hanya diisi jika kode operasiOPERATION_SMDX_SUBJECT_REASON_CODE
Keempat nilai ini memungkinkan pemanggil eUICC API menangani error tertentu satu per satu. Berikut adalah contoh cara menangani error ini.
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.
}
Kombinasi kode error dan operasi yang didukung
Tabel berikut menjelaskan kombinasi operasi yang didukung dan kode error yang ditampilkan dari asisten profil lokal (LPA).
Kombinasi kode operasi dan error | |||
---|---|---|---|
Kode operasi | Kode error | Deskripsi | |
OPERATION_SYSTEM |
Tidak berlaku | Terjadi error internal. Misalnya, thread terputus atau
Terjadi IOException error. |
|
OPERATION_SIM_SLOT |
Tidak berlaku | Terjadi error internal saat melakukan operasi slot SIM. | |
ERROR_TIME_OUT |
Waktu habis saat mencoba melakukan operasi slot SIM. | ||
ERROR_EUICC_MISSING |
Tidak ada eUICC yang tersedia atau aktif di perangkat. | ||
OPERATION_EUICC_CARD |
Tidak berlaku | Terjadi error internal saat menjalankan operasi eUICC. | |
ERROR_UNSUPPORTED_VERSION |
Versi eUICC (chip) dan versi EuiccCard (software) bukan yang kompatibel. | ||
ERROR_EUICC_MISSING |
Tidak ada kartu SIM yang tersedia di perangkat. Misalnya, LPA tidak dapat mendeteksi kartu SIM. | ||
OPERATION_SMDX |
Tidak berlaku | Terjadi error internal saat melakukan operasi SM-DP+/SM-DS. | |
ERROR_ADDRESS_MISSING |
Tidak ada alamat SM-DP+ untuk mendownload profil. | ||
ERROR_INVALID_CONFIRMATION_CODE |
Terjadi error saat mengurai kode aktivasi (format tidak valid). | ||
ERROR_CERTIFICATE_ERROR |
Error sertifikat atau keystore saat digunakan di koneksi TLS untuk verifikasi. | ||
ERROR_NO_PROFILES_AVAILABLE |
Tidak ada profil yang tersedia dari SM-DP+. | ||
ERROR_CONNECTION_ERROR |
Tidak dapat membuat koneksi ke server. | ||
ERROR_INVALID_RESPONSE |
Respons tidak valid dari server SM-DP+/SM-DS. | ||
OPERATION_SWITCH |
Tidak berlaku | Terjadi error internal saat melakukan operasi switch. | |
ERROR_CARRIER_LOCKED |
Tidak diizinkan beralih profil karena perangkat dikunci oleh operator (SIM) terkunci). | ||
OPERATION_DOWNLOAD |
Tidak berlaku | Terjadi error internal saat melakukan operasi download. | |
ERROR_DISALLOWED_BY_PPR |
Tabel Otorisasi Aturan pada eUICC adalah {i>null<i} atau hasil download adalah tidak diizinkan oleh aturan kebijakan profil. | ||
ERROR_INVALID_ACTIVATION_CODE |
Terjadi error saat mengurai kode aktivasi (format tidak valid) atau mencoba mengunduh tanpa kode aktivasi. | ||
ERROR_CARRIER_LOCKED |
Tidak diizinkan untuk mendownload karena perangkat dikunci oleh operator (SIM) terkunci). | ||
ERROR_INCOMPATIBLE_CARRIER |
Operator ada dalam daftar yang tidak diizinkan dan LPA tidak dapat mendownload profil dari SM-DP+/SM-DS. | ||
ERROR_OPERATION_BUSY |
Download profil sedang berlangsung dan tidak ada tindakan lain yang dapat memicu SIM perubahan status diizinkan. | ||
OPERATION_METADATA |
Tidak berlaku | Terjadi error internal saat menjalankan operasi metadata. | |
ERROR_INVALID_ACTIVATION_CODE |
Metadata langganan kosong atau kode aktivasi di dalam metadata langganan kosong atau tidak valid. | ||
ERROR_INCOMPATIBLE_CARRIER |
Operator ada dalam daftar yang tidak diizinkan dan LPA tidak dapat mendownload dari SM-DP+/SM-DS. | ||
OPERATION_EUICC_GSMA |
Tidak berlaku | Terjadi error internal saat melakukan operasi GSMA eUICC. | |
ERROR_INSTALL_PROFILE |
Terjadi error dengan eUICC saat mencoba menginstal profil. Misalnya, profil sudah ada atau ICCID tidak cocok. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Terjadi error dengan eUICC saat mencoba menginstal profil. Memori tidak cukup eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Terjadi error dengan eUICC saat mencoba menginstal profil. Tidak diizinkan oleh aturan kebijakan profil. | ||
OPERATION_APDU |
Tidak berlaku | Terjadi error internal saat melakukan operasi APDU. | |
OPERATION_HTTP |
1-999 |
Kode error berupa nilai error HTTP. | |
Kode operasi | Kode subjek | Kode alasan | Deskripsi |
OPERATION_SMDX_SUBJECT_REASON_CODE |
String berisi 3 digit yang dipisahkan dengan titik, tanpa angka nol di depan. Sebagai
contoh, 8.1.1 . |
String berisi 3 digit yang dipisahkan dengan titik tanpa angka nol di depan. Sebagai
contoh, 3.8 . |
SubjectCode[5.2.6.1] dan reasonCode[5.2.6.2] dari GSMA (SGP.22 v2.2). Sebagai
contoh, SubjectCode 8.1.1 dan reasonCode dari
3.8 berarti EID
terikat ke perangkat lain. |