eUICC API की गड़बड़ियां ठीक करना

eUICC API, गड़बड़ी कोड उपलब्ध कराते हैं. इनसे ऐप्लिकेशन और उपयोगकर्ताओं को, eSIM प्रोफ़ाइल डाउनलोड करने, चालू करने, बंद करने, और मिटाने से जुड़ी समस्याओं को हल करने में मदद मिलती है.

गड़बड़ियां ठीक करना

eUICC API को कॉल करते समय कोई गड़बड़ी होने पर, एक पेंडिंग इंटेंट कॉलबैक दिया जाता है. साथ ही, गड़बड़ी के बारे में ज़्यादा जानकारी देने वाले कोड को पाने के लिए, EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE का इस्तेमाल किया जाता है. Android 11 से, नतीजे के तौर पर मिले इंटेंट में ये चार कुंजियां और वैल्यू शामिल होती हैं:

  • EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE: इससे यह पता चलता है कि क्या गड़बड़ी हुई है. उदाहरण के लिए, ई-सिम प्रोफ़ाइल डाउनलोड या मिटाना. इस फ़ील्ड को कभी खाली नहीं छोड़ा जाता.
  • EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE: इस बारे में जानकारी कि गड़बड़ी क्यों हुई. उदाहरण के लिए, अनुरोध का समय खत्म हो गया है या डिवाइस कैरियर लॉक है. इन मामलों में, इस फ़ील्ड में अपने-आप जानकारी नहीं भरती:

    • ऑपरेशन कोड OPERATION_SMDX_SUBJECT_REASON_CODE है.
    • गड़बड़ी, IOException या InterruptedException जैसी सामान्य गड़बड़ी हो.
  • EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE: इसका इस्तेमाल EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE के साथ किया जाता है. ये दोनों मिलकर GSMA (SGP.22 v2.2) से SubjectCode[5.2.6.1] और ReasonCode[5.2.6.2] उपलब्ध कराते हैं. यह फ़ील्ड सिर्फ़ तब भरता है, जब ऑपरेशन कोड OPERATION_SMDX_SUBJECT_REASON_CODE हो.

  • EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE: इसका इस्तेमाल EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE के साथ किया जाता है. ये दोनों मिलकर GSMA (SGP.22 v2.2) से SubjectCode[5.2.6.1] और ReasonCode[5.2.6.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.
}

कार्रवाई और गड़बड़ी के कोड के कॉम्बिनेशन

इस टेबल में, एलपीए से मिले ऑपरेशन और गड़बड़ी के कोड के बारे में बताया गया है.

ऑपरेशन और गड़बड़ी कोड के कॉम्बिनेशन
ऑपरेशन कोड गड़बड़ी कोड ब्यौरा
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 डिवाइस में कोई सिम कार्ड उपलब्ध नहीं है. उदाहरण के लिए, एलपीए को सिम कार्ड का पता नहीं चल पा रहा है.
OPERATION_SMDX लागू नहीं SM-DP+/SM-DS ऑपरेशन करते समय कोई अंदरूनी गड़बड़ी हुई.
ERROR_ADDRESS_MISSING प्रोफ़ाइल डाउनलोड करने के लिए, SM-DP+ का कोई पता नहीं है.
ERROR_INVALID_CONFIRMATION_CODE ऐक्टिवेशन कोड को पार्स करते समय कोई गड़बड़ी हुई (अमान्य फ़ॉर्मैट).
ERROR_CERTIFICATE_ERROR पुष्टि करने के लिए टीएलएस कनेक्शन में इस्तेमाल किए जाने पर, कीस्टोर या सर्टिफ़िकेट की गड़बड़ी.
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 मोबाइल और इंटरनेट सेवा देने वाली कंपनी को ब्लैकलिस्ट किया गया है. इसलिए, एलपीए, 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 गड़बड़ी का कोड, एचटीटीपी गड़बड़ी की वैल्यू है.
ऑपरेशन कोड विषय का कोड वजह का कोड ब्यौरा
OPERATION_SMDX_SUBJECT_REASON_CODE स्ट्रिंग में तीन अंक हैं, जिन्हें डॉट से अलग किया गया है. इसमें शुरुआत में शून्य नहीं है. उदाहरण के लिए, 8.1.1. स्ट्रिंग में तीन अंक हैं, जिन्हें डॉट से अलग किया गया है. साथ ही, इसकी शुरुआत में शून्य नहीं है. उदाहरण के लिए, 3.8. GSMA (SGP.22 v2.2) से SubjectCode[5.2.6.1] और ReasonCode[5.2.6.2]. उदाहरण के लिए, SubjectCode 8.1.1 और ReasonCode 3.8 का मतलब है कि ईआईडी किसी दूसरे डिवाइस से जुड़ा हुआ है.