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

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

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

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

ארבעת הערכים האלה מאפשרים לשולח הקריאה ל-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 היא null או שההורדה אסורה לפי כלל מדיניות הפרופיל.
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 לא רלוונטי אירעה שגיאה פנימית במהלך ביצוע פעולת GSMA ב-eUICC.
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 קשור למכשיר אחר.