eUICC API memberikan kode error untuk membantu aplikasi dan pengguna memecahkan masalah yang terkait dengan mendownload, mengaktifkan, menonaktifkan, dan menghapus profil eSIM.
Menangani error
Saat terjadi error saat memanggil eUICC API, callback intent yang tertunda
akan disediakan dan
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
digunakan sebagai kunci untuk mendapatkan kode error yang mendetail. Mulai dari
Android 11, empat kunci dan nilai berikut
disertakan dalam intent yang dihasilkan:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Memberikan informasi tentang masalah yang terjadi. Misalnya, mendownload atau menghapus profil eSIM. Kolom ini tidak pernah kosong.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informasi tentang alasan terjadinya error. Misalnya, waktu permintaan berakhir atau perangkat terkunci operator. Kolom ini tidak diisi dalam kasus berikut:- Kode operasinya adalah
OPERATION_SMDX_SUBJECT_REASON_CODE
. - Error ini adalah 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 menyediakan SubjectCode[5.2.6.1] dan ReasonCode[5.2.6.2] dari GSMA (SGP.22 v2.2). Kolom ini hanya diisi jika kode operasinya adalahOPERATION_SMDX_SUBJECT_REASON_CODE
.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Digunakan denganEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
, yang bersama-sama menyediakan SubjectCode[5.2.6.1] dan ReasonCode[5.2.6.2] dari GSMA (SGP.22 v2.2). Kolom ini hanya diisi jika kode operasinya adalahOPERATION_SMDX_SUBJECT_REASON_CODE
.
Keempat nilai ini memungkinkan pemanggil eUICC API menangani error tertentu secara terpisah. 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 dan kode error yang didukung 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 terganggu atau
terjadi error IOException . |
|
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 melakukan operasi eUICC. | |
ERROR_UNSUPPORTED_VERSION |
Versi eUICC (chip) dan versi EuiccCard (software) tidak 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 dalam 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 tombol. | |
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 null atau download tidak diizinkan oleh aturan kebijakan profil. | ||
ERROR_INVALID_ACTIVATION_CODE |
Terjadi error saat mengurai kode aktivasi (format tidak valid) atau mencoba mendownload tanpa kode aktivasi. | ||
ERROR_CARRIER_LOCKED |
Tidak diizinkan untuk mendownload karena perangkat dikunci oleh operator (SIM terkunci). | ||
ERROR_INCOMPATIBLE_CARRIER |
Operator berada 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 perubahan status SIM yang diizinkan. | ||
OPERATION_METADATA |
Tidak berlaku | Terjadi error internal saat melakukan operasi metadata. | |
ERROR_INVALID_ACTIVATION_CODE |
Metadata langganan kosong atau kode aktivasi di dalam metadata langganan kosong atau tidak valid. | ||
ERROR_INCOMPATIBLE_CARRIER |
Operator berada dalam daftar hitam dan LPA tidak dapat mendownload profil operator ini dari SM-DP+/SM-DS. | ||
OPERATION_EUICC_GSMA |
Tidak berlaku | Terjadi error internal saat menjalankan 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 |
Error dengan eUICC saat mencoba menginstal profil. Memori di eUICC tidak cukup. | ||
ERROR_DISALLOWED_BY_PPR |
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 nol di awal. Misalnya, 8.1.1 . |
String berisi 3 digit yang dipisahkan dengan titik tanpa angka nol di depan. Misalnya, 3.8 . |
SubjectCode[5.2.6.1] dan ReasonCode[5.2.6.2] dari GSMA (SGP.22 v2.2). Misalnya, SubjectCode 8.1.1 dan ReasonCode
3.8 berarti EID
terikat ke perangkat lain. |