Menangani Kesalahan API eUICC

API eUICC menyediakan kode kesalahan untuk membantu aplikasi dan pengguna memecahkan masalah terkait pengunduhan, pengaktifan, penonaktifan, dan penghapusan profil eSIM.

Kesalahan penanganan

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

Keempat nilai ini memungkinkan pemanggil API eUICC 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.
}

Kombinasi operasi dan kode kesalahan yang didukung

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

Kombinasi operasi dan kode kesalahan
Kode operasi Kode kesalahan Keterangan
OPERATION_SYSTEM Tak dapat diterapkan Terjadi kesalahan internal. Misalnya, thread terputus atau terjadi kesalahan IOException .
OPERATION_SIM_SLOT Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan pengoperasian slot SIM.
ERROR_TIME_OUT Waktu habis saat mencoba menjalankan pengoperasian 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 mengurai kode aktivasi (format tidak valid).
ERROR_CERTIFICATE_ERROR Kesalahan 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 Tak dapat diterapkan Terjadi kesalahan internal saat menjalankan pengoperasian sakelar.
ERROR_CARRIER_LOCKED Tidak diperbolehkan berpindah profil karena perangkat terkunci operator (SIM terkunci).
OPERATION_DOWNLOAD Tak dapat diterapkan Terjadi kesalahan internal saat melakukan operasi pengunduhan.
ERROR_DISALLOWED_BY_PPR Tabel Otorisasi Aturan di eUICC adalah null atau pengunduhan 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 diperbolehkan mengunduh karena perangkat terkunci operator (SIM terkunci).
ERROR_INCOMPATIBLE_CARRIER Operator ada dalam daftar hitam dan LPA tidak dapat mengunduh profil dari SM-DP+/SM-DS.
ERROR_OPERATION_BUSY Pengunduhan profil sedang berlangsung dan tindakan lain yang dapat memicu perubahan status SIM tidak diperbolehkan.
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 ada 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 eUICC GSMA.
ERROR_INSTALL_PROFILE Terjadi kesalahan dengan eUICC saat mencoba memasang profil. Misalnya profil sudah ada atau ICCID-nya tidak cocok.
ERROR_EUICC_INSUFFICIENT_MEMORY Terjadi kesalahan dengan eUICC saat mencoba memasang profil. Memori pada eUICC tidak cukup.
ERROR_DISALLOWED_BY_PPR Terjadi 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 angka nol di depannya. Misalnya, 8.1.1 . String berisi 3 digit yang dipisahkan oleh titik tanpa 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.