eUICC API memberikan kode error untuk membantu aplikasi dan pengguna memecahkan masalah terkait mendownload, mengaktifkan, menonaktifkan, dan menghapus profil eSIM.
Menangani error
Jika terjadi error saat memanggil eUICC API, callback intent tertunda akan diberikan dan
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
digunakan sebagai kunci untuk mendapatkan kode error mendetail. Mulai
Android 11, empat kunci dan nilai berikut
disertakan dalam intent yang dihasilkan:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Memberikan informasi tentang apa yang salah. Misalnya, mendownload atau menghapus profil eSIM. Kolom ini tidak pernah kosong.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informasi tentang alasan terjadinya error. Misalnya, permintaan kehabisan waktu atau perangkat dikunci oleh 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 memberikan 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 memberikan 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 setiap 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 tunggu 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 keystore atau sertifikat 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 peralihan. | |
ERROR_CARRIER_LOCKED |
Tidak diizinkan untuk beralih profil karena perangkat dikunci oleh operator (dikunci SIM). | ||
OPERATION_DOWNLOAD |
Tidak berlaku | Terjadi error internal saat melakukan operasi download. | |
ERROR_DISALLOWED_BY_PPR |
Tabel Otorisasi Aturan di eUICC bernilai 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 (dikunci SIM). | ||
ERROR_INCOMPATIBLE_CARRIER |
Operator ada dalam daftar hitam 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 ada 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 melakukan operasi GSMA eUICC. | |
ERROR_INSTALL_PROFILE |
Terjadi error pada eUICC saat mencoba menginstal profil. Misalnya, profil sudah ada atau ICCID tidak cocok. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Terjadi error pada eUICC saat mencoba menginstal profil. Memori di eUICC tidak cukup. | ||
ERROR_DISALLOWED_BY_PPR |
Terjadi error pada 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 adalah 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 depannya. Misalnya, 8.1.1 . |
String berisi 3 digit yang dipisahkan dengan titik tanpa angka nol di depannya. 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. |