การจัดการข้อผิดพลาด eUICC API

APIs eUICC ให้รหัสข้อผิดพลาดในการปพลิเคชันความช่วยเหลือและปัญหาผู้ใช้แก้ไขปัญหาที่เกี่ยวข้องกับการดาวน์โหลดช่วยให้ปิดการใช้งานและการลบ ESIM โปรไฟล์

การจัดการข้อผิดพลาด

เมื่อเกิดข้อผิดพลาดในขณะที่การเรียก eUICC API ที่อยู่ระหว่างดำเนินการเรียกกลับเจตนาให้บริการและ EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE ถูกนำมาใช้เป็นกุญแจสำคัญในการรับรหัสข้อผิดพลาดรายละเอียด เริ่มต้นจาก Android 11 คีย์และค่าสี่รายการต่อไปนี้จะรวมอยู่ในความตั้งใจที่เป็นผลลัพธ์:

  • 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

ค่าสี่ค่านี้อนุญาตให้ผู้เรียก 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 ไม่อนุญาตให้ดาวน์โหลดเนื่องจากอุปกรณ์ถูกล็อคโดยผู้ให้บริการ (ล็อคซิม)
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 หลักคั่นด้วยจุด โดยไม่มีศูนย์นำหน้า ยกตัวอย่างเช่น 8.1.1 สตริงมีตัวเลข 3 หลักคั่นด้วยจุดโดยไม่มีศูนย์นำหน้า ยกตัวอย่างเช่น 3.8 SubjectCode[5.2.6.1] และ ReasonCode[5.2.6.2] จาก GSMA (SGP.22 v2.2) ยกตัวอย่างเช่น SubjectCode ของ 8.1.1 และ ReasonCode ของ 3.8 วิธีอี๊ดถูกผูกไว้กับอุปกรณ์อื่น