معالجة أخطاء eUICC API

تشير رسالة الأشكال البيانية واجهات برمجة تطبيقات eUICC توفير رموز خطأ لمساعدة التطبيقات والمستخدمين في تحري المشكلات المتعلقة تنزيل الملفات الشخصية لشرائح eSIM وتفعيلها وإيقافها وحذفها

التعامل مع الأخطاء

عند حدوث خطأ أثناء استدعاء واجهة برمجة التطبيقات eUICC، تكون حالة معاودة الاتصال بالهدف في انتظار المراجعة المقدمة EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE مفتاحًا للحصول على رمز الخطأ التفصيلي. بدءًا من Android 11، فإن المفاتيح والقيم الأربعة التالية هي المضمنة في الغرض الناتج:

  • EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE: تقدّم معلومات حول المشكلة التي حدثت. على سبيل المثال، يمكن أن يؤدي تنزيل أو حذف ملف شخصي لشريحة eSIM لا يكون هذا الحقل خاليًا أبدًا.
  • EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE: معلومات عن سبب حدوث الخطأ. على سبيل المثال، تم تحديد مهلة محددة للطلب أو إذا كان الجهاز مقفلاً بواسطة مشغِّل شبكة الجوّال. لم تتم تعبئة هذا الحقل في في الحالات التالية:

  • 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) الإصدار 2.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) الإصدار 2.2). تتم تعبئة هذا الحقل فقط عندما يكون رمز التشغيل OPERATION_SMDX_SUBJECT_REASON_CODE

تتيح هذه القيم الأربع لمتصل واجهة برمجة التطبيقات eUICC معالجة أخطاء معيّنة كل على حدة. في ما يلي مثال على كيفية التعامل مع هذه الأخطاء.

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 غير سارٍ حدث خطأ داخلي أثناء تنفيذ عملية فتحة شريحة SIM.
ERROR_TIME_OUT انتهت المهلة أثناء محاولة تنفيذ عملية فتحة شريحة SIM.
ERROR_EUICC_MISSING لا تتوفّر eUICC أو نشطة على الجهاز.
OPERATION_EUICC_CARD غير سارٍ حدث خطأ داخلي أثناء تنفيذ عملية eUICC.
ERROR_UNSUPPORTED_VERSION إصدار eUICC (الشريحة) وإصدار EuiccCard (البرامج) غير صالحين متوافقة.
ERROR_EUICC_MISSING لا تتوفّر شريحة SIM في الجهاز. على سبيل المثال، لا يمكن لـ LPA اكتشاف شريحة SIM.
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 غير مسموح بتبديل الملف الشخصي لأن الجهاز مُقفل باستخدام مشغّل شبكة الجوّال (شريحة SIM) مُقفل).
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 جارٍ تنزيل الملف الشخصي ولا يتوفّر أي إجراء آخر يمكن أن يؤدي إلى تشغيل شريحة SIM السماح بتغييرات الحالة.
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 يعني معرّف شريحة SIM المضمّنة (EID) بجهاز آخر.