Menangani Kesalahan API eUICC

API eUICC menyediakan kode kesalahan untuk membantu aplikasi dan pengguna memecahkan masalah yang terkait dengan mengunduh, mengaktifkan, menonaktifkan, dan menghapus profil eSIM.

Menangani kesalahan

Saat terjadi kesalahan saat memanggil API eUICC, panggilan balik maksud tertunda disediakan dan EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE digunakan sebagai kunci untuk mendapatkan kode kesalahan terperinci. Mulai dari Android 11, empat kunci dan nilai berikut disertakan dalam maksud yang dihasilkan:

Keempat nilai ini memungkinkan pemanggil API eUICC untuk menangani kesalahan tertentu satu per satu. Berikut ini adalah contoh cara menangani kesalahan tersebut.

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.
}

Operasi yang didukung dan kombinasi kode kesalahan

Tabel berikut menjelaskan kombinasi operasi dan kode kesalahan yang didukung yang dikembalikan dari asisten profil lokal (LPA).

Operasi dan kombinasi kode kesalahan
Kode operasi Kode kesalahan Keterangan
OPERATION_SYSTEM Tak dapat diterapkan Terjadi kesalahan internal. Misalnya, utas terputus atau terjadi kesalahan IOException .
OPERATION_SIM_SLOT Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan operasi slot SIM.
ERROR_TIME_OUT Waktu habis saat mencoba menjalankan operasi slot SIM.
ERROR_EUICC_MISSING Tidak ada eUICC yang tersedia atau aktif di perangkat.
OPERATION_EUICC_CARD Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan operasi eUICC.
ERROR_UNSUPPORTED_VERSION Versi eUICC (chip) dan versi EuiccCard (perangkat lunak) tidak kompatibel.
ERROR_EUICC_MISSING Tidak ada kartu SIM yang tersedia di perangkat. Misalnya, LPA tidak dapat mendeteksi kartu SIM.
OPERATION_SMDX Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan operasi SM-DP+/SM-DS.
ERROR_ADDRESS_MISSING Tidak ada alamat SM-DP+ untuk mengunduh profil.
ERROR_INVALID_CONFIRMATION_CODE Terjadi kesalahan saat menguraikan kode aktivasi (format tidak valid).
ERROR_CERTIFICATE_ERROR Keystore atau kesalahan 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 Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan operasi sakelar.
ERROR_CARRIER_LOCKED Tidak diizinkan untuk beralih profil karena perangkat dikunci oleh operator (SIM terkunci).
OPERATION_DOWNLOAD Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan operasi pengunduhan.
ERROR_DISALLOWED_BY_PPR Tabel Otorisasi Aturan di eUICC adalah nol atau unduhan tidak diizinkan oleh aturan kebijakan profil.
ERROR_INVALID_ACTIVATION_CODE Terjadi kesalahan saat menguraikan kode aktivasi (format tidak valid) atau mencoba mengunduh tanpa kode aktivasi.
ERROR_CARRIER_LOCKED Tidak diizinkan untuk mengunduh karena perangkat terkunci oleh operator (SIM terkunci).
ERROR_INCOMPATIBLE_CARRIER Operator berada dalam daftar hitam dan LPA tidak dapat mengunduh profil dari SM-DP+/SM-DS.
ERROR_OPERATION_BUSY Pengunduhan profil sedang berlangsung dan tidak ada tindakan lain yang dapat memicu perubahan status SIM yang diizinkan.
OPERATION_METADATA Tak dapat diterapkan Terjadi kesalahan 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 berada dalam daftar hitam dan LPA tidak dapat mengunduh profil operator ini dari SM-DP+/SM-DS.
OPERATION_EUICC_GSMA Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan operasi GSMA eUICC.
ERROR_INSTALL_PROFILE Kesalahan dengan eUICC saat mencoba memasang profil. Misalnya, profil sudah ada atau ICCID tidak cocok.
ERROR_EUICC_INSUFFICIENT_MEMORY Kesalahan dengan eUICC saat mencoba memasang profil. Tidak cukup memori pada eUICC.
ERROR_DISALLOWED_BY_PPR Kesalahan dengan eUICC saat mencoba memasang profil. Tidak diizinkan oleh aturan kebijakan profil.
OPERATION_APDU Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan operasi APDU.
OPERATION_HTTP 1-999 Kode kesalahan adalah nilai kesalahan HTTP.
Kode operasi Kode subjek Kode alasan Keterangan
OPERATION_SMDX_SUBJECT_REASON_CODE String berisi 3 digit yang dipisahkan oleh titik, tanpa nol di depan. Misalnya, 8.1.1 . String berisi 3 digit yang dipisahkan oleh titik tanpa 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.