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

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

गड़बड़ियों को हैंडल करना

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 के साथ किया जाता है. इन दोनों से मिलकर, 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 एपीआई को कॉल करने वाला व्यक्ति, अलग-अलग गड़बड़ियों को अलग-अलग तरीके से हैंडल कर सकता है. यहां इन गड़बड़ियों को हैंडल करने का एक उदाहरण दिया गया है.

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 मोबाइल और इंटरनेट सेवा देने वाली कंपनी, ब्लैकलिस्ट में शामिल है. इसलिए, एलपीए, 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]. उदाहरण के लिए, 8.1.1 का SubjectCode और 3.8 का ReasonCode का मतलब है कि EID किसी दूसरे डिवाइस से जुड़ा है.