טיפול בשגיאות API של eUICC

ממשקי ה-API של eUICC מספקים קודי שגיאה כדי לעזור לאפליקציות ולמשתמשים לפתור בעיות הקשורות להורדה, הפעלה, השבתה ומחיקה של פרופילי eSIM.

טיפול בשגיאות

כאשר מתרחשת שגיאה בעת קריאה ל-eUICC API, ניתנת התקשרות חוזרת ממתינה ו- EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE משמש כמפתח לקבלת קוד השגיאה המפורט. החל מאנדרואיד 11, ארבעת המפתחות והערכים הבאים כלולים בכוונה המתקבלת:

ארבעת הערכים הללו מאפשרים למתקשר של 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 לא ישים אירעה שגיאה פנימית בעת ביצוע פעולת חריץ 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 פירושם שה-EID קשור למכשיר אחר.