eUICC API ระบุรหัสข้อผิดพลาดเพื่อช่วยแอปและผู้ใช้แก้ปัญหาเกี่ยวกับ การดาวน์โหลด การเปิดใช้ การปิดใช้ และการลบโปรไฟล์ eSIM
จัดการข้อผิดพลาด
เมื่อเกิดข้อผิดพลาดขณะเรียกใช้ eUICC API การเรียกกลับของ Intent ที่รอดำเนินการจะเป็น
ระบุและ
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
ใช้เป็นคีย์ในการรับรหัสข้อผิดพลาดโดยละเอียด เริ่มจาก
Android 11 คีย์และค่า 4 รายการต่อไปนี้
ที่รวมอยู่ใน Intent ผลลัพธ์ ดังนี้
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: ให้ข้อมูลเกี่ยวกับข้อผิดพลาด ตัวอย่างเช่น การดาวน์โหลดหรือ กำลังลบโปรไฟล์ eSIM ต้องระบุข้อมูลในช่องนี้EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: ข้อมูลเกี่ยวกับสาเหตุที่เกิดข้อผิดพลาด เช่น คำขอหมดเวลา หรืออุปกรณ์ถูกล็อกจากผู้ให้บริการ ช่องนี้จะไม่ไม่มีข้อมูลแสดงอยู่ใน กรณีต่อไปนี้- รหัสการดำเนินการคือ
OPERATION_SMDX_SUBJECT_REASON_CODE
- เป็นข้อผิดพลาดระดับต่ำ เช่น
IOException
หรือInterruptedException
- รหัสการดำเนินการคือ
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: ใช้กับEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
ซึ่งใช้ร่วมกัน ระบุ SubjectCode[5.2.6.1] และ ReasonCode[5.2.6.2] จาก GSMA (SGP.22 v2.2) ช่องนี้จะป็อปปูเลตเมื่อรหัสการดำเนินการคือOPERATION_SMDX_SUBJECT_REASON_CODE
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: ใช้กับEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
ซึ่งใช้ร่วมกัน ระบุ SubjectCode[5.2.6.1] และ ReasonCode[5.2.6.2] จาก GSMA (SGP.22 v2.2) ช่องนี้จะป็อปปูเลตเมื่อรหัสการดำเนินการคือOPERATION_SMDX_SUBJECT_REASON_CODE
ค่าทั้ง 4 ค่านี้ทำให้ผู้เรียกใช้ eUICC API จัดการข้อผิดพลาดเฉพาะได้ แยกกัน ตัวอย่างวิธีจัดการข้อผิดพลาดเหล่านี้มีดังนี้
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.
}
ชุดค่าผสมของการดำเนินการและรหัสข้อผิดพลาดที่รองรับ
ตารางต่อไปนี้อธิบายชุดค่าผสมของการดำเนินการและ รหัสข้อผิดพลาดที่แสดงจากผู้ช่วยโปรไฟล์ในเครื่อง (LPA)
ชุดค่าผสมของการดำเนินการและรหัสข้อผิดพลาด | |||
---|---|---|---|
รหัสการดำเนินการ | รหัสข้อผิดพลาด | คำอธิบาย | |
OPERATION_SYSTEM |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายใน เช่น ชุดข้อความถูกขัดจังหวะหรือ
เกิดข้อผิดพลาด IOException รายการ |
|
OPERATION_SIM_SLOT |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะใช้งานช่องใส่ซิม | |
ERROR_TIME_OUT |
หมดเวลาขณะพยายามใช้งานช่องซิม | ||
ERROR_EUICC_MISSING |
ไม่มี eUICC ที่พร้อมใช้งานหรือใช้งานอยู่ในอุปกรณ์ | ||
OPERATION_EUICC_CARD |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะดำเนินการ eUICC | |
ERROR_UNSUPPORTED_VERSION |
ไม่ใช่เวอร์ชัน eUICC (ชิป) และเวอร์ชัน EuiccCard (ซอฟต์แวร์) ที่เข้ากันได้ | ||
ERROR_EUICC_MISSING |
อุปกรณ์ไม่มีซิมการ์ด ตัวอย่างเช่น LPA ไม่สามารถตรวจหา ซิมการ์ด | ||
OPERATION_SMDX |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะดำเนินการ SM-DP+/SM-DS | |
ERROR_ADDRESS_MISSING |
ไม่มีที่อยู่ SM-DP+ ให้ดาวน์โหลดโปรไฟล์ | ||
ERROR_INVALID_CONFIRMATION_CODE |
เกิดข้อผิดพลาดขณะแยกวิเคราะห์รหัสเปิดใช้งาน (รูปแบบไม่ถูกต้อง) | ||
ERROR_CERTIFICATE_ERROR |
ข้อผิดพลาดของคีย์สโตร์หรือใบรับรองเมื่อใช้ในการเชื่อมต่อ TLS สำหรับ การยืนยันของคุณ | ||
ERROR_NO_PROFILES_AVAILABLE |
ไม่มีโปรไฟล์จาก SM-DP+ | ||
ERROR_CONNECTION_ERROR |
ไม่สามารถสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ | ||
ERROR_INVALID_RESPONSE |
การตอบกลับจากเซิร์ฟเวอร์ SM-DP+/SM-DS ไม่ถูกต้อง | ||
OPERATION_SWITCH |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะดำเนินการเปลี่ยน | |
ERROR_CARRIER_LOCKED |
ไม่อนุญาตให้เปลี่ยนโปรไฟล์เนื่องจากอุปกรณ์ถูกล็อกผู้ให้บริการ (ซิม ล็อกอยู่) | ||
OPERATION_DOWNLOAD |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะดำเนินการดาวน์โหลด | |
ERROR_DISALLOWED_BY_PPR |
ตารางการให้สิทธิ์กฎใน eUICC เป็นค่าว่าง หรือการดาวน์โหลด ไม่อนุญาตโดยกฎนโยบายโปรไฟล์ | ||
ERROR_INVALID_ACTIVATION_CODE |
เกิดข้อผิดพลาดขณะแยกวิเคราะห์รหัสเปิดใช้งาน (รูปแบบไม่ถูกต้อง) หรือ การพยายามดาวน์โหลดโดยไม่มีรหัสเปิดใช้งาน | ||
ERROR_CARRIER_LOCKED |
ไม่อนุญาตให้ดาวน์โหลดเนื่องจากอุปกรณ์ล็อกอยู่กับผู้ให้บริการ (SIM ล็อกอยู่) | ||
ERROR_INCOMPATIBLE_CARRIER |
ผู้ให้บริการอยู่ในบัญชีดำ และ LPA ไม่สามารถดาวน์โหลดโปรไฟล์ SM-DP+/SM-DS | ||
ERROR_OPERATION_BUSY |
อยู่ระหว่างการดาวน์โหลดโปรไฟล์และไม่มีการดำเนินการอื่นที่อาจเรียกให้ซิมทำงาน สามารถเปลี่ยนแปลงสถานะได้ | ||
OPERATION_METADATA |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะดำเนินการข้อมูลเมตา | |
ERROR_INVALID_ACTIVATION_CODE |
ข้อมูลเมตาของการสมัครใช้บริการว่างเปล่าหรือรหัสเปิดใช้งานภายใน ข้อมูลเมตาของการสมัครใช้บริการว่างเปล่าหรือไม่ถูกต้อง | ||
ERROR_INCOMPATIBLE_CARRIER |
ผู้ให้บริการอยู่ในบัญชีดำและ LPA ไม่สามารถดาวน์โหลดผู้ให้บริการรายนี้ จาก SM-DP+/SM-DS | ||
OPERATION_EUICC_GSMA |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะดำเนินการ eUICC GSMA | |
ERROR_INSTALL_PROFILE |
เกิดข้อผิดพลาดกับ eUICC ขณะพยายามติดตั้งโปรไฟล์ เช่น โปรไฟล์ มีอยู่แล้ว หรือ ICCID ไม่ตรงกัน | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
เกิดข้อผิดพลาดกับ eUICC ขณะพยายามติดตั้งโปรไฟล์ หน่วยความจำไม่เพียงพอบน eUICC | ||
ERROR_DISALLOWED_BY_PPR |
เกิดข้อผิดพลาดกับ eUICC ขณะพยายามติดตั้งโปรไฟล์ ไม่อนุญาตจาก กฎนโยบายโปรไฟล์ | ||
OPERATION_APDU |
ไม่เกี่ยวข้อง | เกิดข้อผิดพลาดภายในขณะดำเนินการ APDU | |
OPERATION_HTTP |
1-999 |
รหัสข้อผิดพลาดคือค่าข้อผิดพลาดของ HTTP | |
รหัสการดำเนินการ | รหัสเรื่อง | รหัสสาเหตุ | คำอธิบาย |
OPERATION_SMDX_SUBJECT_REASON_CODE |
สตริงมีตัวเลข 3 หลักที่คั่นด้วยจุดโดยไม่มีเลข 0 นำหน้า สำหรับ
ตัวอย่างเช่น 8.1.1 |
สตริงมีตัวเลข 3 หลักที่คั่นด้วยจุดโดยไม่มีเลข 0 นำหน้า สำหรับ
ตัวอย่างเช่น 3.8 |
SubjectCode[5.2.6.1] และ ReasonCode[5.2.6.2] จาก GSMA (SGP.22 v2.2) สำหรับ
ตัวอย่างเช่น SubjectCode ของ 8.1.1 และ ReasonCode ของ
3.8 หมายถึง EID
เชื่อมโยงกับอุปกรณ์อื่น |