eUICC एपीआई की गड़बड़ियां मैनेज करना

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

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

जब eUICC एपीआई को कॉल करते समय कोई गड़बड़ी होती है, तो 'मंज़ूरी बाकी है' कॉलबैक दिया जाता है. साथ ही, ज़्यादा जानकारी वाला गड़बड़ी कोड पाने के लिए, 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 के साथ इस्तेमाल किया जाता है, जो जीएसएमए (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 डिवाइस में कोई सिम कार्ड उपलब्ध नहीं है. उदाहरण के लिए, LPA सिम कार्ड का पता नहीं लगा सकता.
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 मोबाइल और इंटरनेट सेवा देने वाली कंपनी ब्लैकलिस्ट में है और एलपीए, 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 में गड़बड़ी हुई. उदाहरण के लिए, प्रोफ़ाइल पहले से मौजूद है या आईसीसीआईडी मैच नहीं करता.
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 अंक होते हैं और उन्हें बिंदु से अलग किया जाता है. इसकी शुरुआत में शून्य का इस्तेमाल नहीं होता. उदाहरण के लिए, 3.8. GSMA (SGP.22 v2.2) की ओर से SubjectCode[5.2.6.1] और reasonCode[5.2.6.2]. उदाहरण के लिए, 8.1.1 का SubjectCode और 3.8 का reasonCode इसका मतलब है कि ईआईडी किसी दूसरे डिवाइस से जुड़ा है.