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