ממשקי ה-API של eUICC מספקים קודי שגיאה כדי לעזור לאפליקציות ולמשתמשים לפתור בעיות הקשורות להורדה, הפעלה, השבתה ומחיקה של פרופילי eSIM.
טיפול בשגיאות
כאשר מתרחשת שגיאה בעת קריאה ל-eUICC API, ניתנת התקשרות חוזרת ממתינה ו- EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
משמש כמפתח לקבלת קוד השגיאה המפורט. החל מאנדרואיד 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] מ- 22 GSMA (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] מ- 22 GSMA (2.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 | לא ישים | אירעה שגיאה פנימית בעת ביצוע פעולת חריץ 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 קשור למכשיר אחר. |