कैरियर कॉन्फ़िगरेशन

Android 6.0 और उसके बाद के वर्शन में, खास लोगों के लिए मोबाइल और इंटरनेट सेवा देने वाली कंपनी के हिसाब से खास कॉन्फ़िगरेशन उपलब्ध कराने के लिए. यह फ़ंक्शन, जो यूआईसीसी मोबाइल और इंटरनेट सेवा देने वाली कंपनी के खास अधिकारों पर आधारित हो Android 5.1 (Lollipop MR1) में पेश किया गया, मोबाइल और इंटरनेट सेवा देने वाली कंपनी की अनुमति देता है कॉन्फ़िगरेशन को स्थैतिक कॉन्फ़िगरेशन ओवरले से अलग कर दिया जाएगा और की मदद से, कैरियर और OEM, डाइनैमिक तौर पर कैरियर कॉन्फ़िगरेशन उपलब्ध करा सकते हैं प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है.

मोबाइल और इंटरनेट सेवा देने वाली कंपनी के सही तरीके से साइन किए गए ऐप्लिकेशन को या तो सिस्टम की इमेज में पहले से लोड किया जा सकता है, अपने-आप इंस्टॉल हो जाता है या किसी ऐप स्टोर से मैन्युअल तरीके से इंस्टॉल किया जाता है. ऐप्लिकेशन सेटिंग का कॉन्फ़िगरेशन देने के लिए, प्लैटफ़ॉर्म से क्वेरी की जाती है शामिल हैं:

  • रोमिंग/नॉनरोमिंग नेटवर्क
  • विज़ुअल वॉइसमेल
  • मैसेज (एसएमएस)/मल्टीमीडिया मैसेज (एमएमएस) नेटवर्क की सेटिंग
  • VoLTE/IMS कॉन्फ़िगरेशन

यह तय करना कि कौनसी वैल्यू वापस करनी हैं, यह मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन पर निर्भर करता है और यह ऐप्लिकेशन को भेजी गई पूरी जानकारी के आधार पर डाइनैमिक हो सकता है. प्लैटफ़ॉर्म.

इस तरीके के मुख्य फ़ायदे ये हैं:

  • डाइनैमिक कॉन्फ़िगरेशन - यह सुविधा इस तरह के कॉन्सेप्ट के लिए काम करती है गैर-एमसीसीएमएनसी से लिया गया कॉन्फ़िगरेशन, उदाहरण के लिए, मोबाइल वर्चुअल नेटवर्क ऑपरेटर (MVNO) या ग्राहक, अतिरिक्त सेवाओं के लिए ऑप्ट-इन करते हैं.
  • किसी भी चैनल से बेचे जाने वाले डिवाइसों के लिए सहायता - उदाहरण के लिए, मुक्त बाज़ार फ़ोन ऐप स्टोर से ऐप्लिकेशन डाउनलोड करके सेटिंग देखें.
  • सुरक्षा - यह कॉन्फ़िगरेशन देने का खास अधिकार है यह मोबाइल और इंटरनेट सेवा देने वाली कंपनी के हस्ताक्षर वाले ऐप्लिकेशन को ही दिया जाता है.
  • तय एपीआई - पहले यह कॉन्फ़िगरेशन सेव किया गया था यह ज़्यादातर फ़्रेमवर्क के अंदर के एक्सएमएल ओवरले में होता है, सार्वजनिक या सार्वजनिक के ज़रिए नहीं एपीआई. Android 6.0 में, मोबाइल और इंटरनेट सेवा देने वाली कंपनी का कॉन्फ़िगरेशन एपीआई सार्वजनिक है और बेहतर तरीके से बताया गया है.

यह कैसे काम करता है

कॉन्फ़िगरेशन को लोड करें

इस सुविधा से दिया गया कैरियर कॉन्फ़िगरेशन, की-वैल्यू पेयर का सेट है जो इस प्लैटफ़ॉर्म पर टेलीफ़ोनी के अलग-अलग तरह के व्यवहार में बदलाव करते हैं.

किसी विशेष डिवाइस के लिए मानों का सेट कॉम्पोनेंट को क्रम में रखें:

  1. मोबाइल और इंटरनेट सेवा देने वाली कंपनी का ऐप्लिकेशन (यह ज़रूरी नहीं है, लेकिन हम इसका सुझाव देते हैं Android Open में मौजूद कॉन्फ़िगरेशन के अलावा अतिरिक्त कॉन्फ़िगरेशन के लिए जगह सोर्स प्रोजेक्ट (AOSP)
  2. प्लैटफ़ॉर्म कॉन्फ़िगरेशन ऐप्लिकेशन, जिसमें सिस्टम इमेज भी शामिल है
  3. डिफ़ॉल्ट वैल्यू, जो फ़्रेमवर्क में हार्डकोड की गई होती हैं (जो पिछले व्यवहार की तरह ही होती हैं से Android 6.0)

प्लैटफ़ॉर्म कॉन्फ़िगर करने वाला ऐप्लिकेशन

सिस्टम इमेज के साथ, एक सामान्य प्लैटफ़ॉर्म कॉन्फ़िगरेशन ऐप्लिकेशन बंडल किया गया है. यह ऐप्लिकेशन भेज सकता है उन वैरिएबल के लिए वैल्यू सेट करें जो सामान्य मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन में नहीं हैं. प्लैटफ़ॉर्म का कॉन्फ़िगरेशन ऐप्लिकेशन (Android 6.0 में) packages/apps/CarrierConfig में मिल सकता है:

इस ऐप्लिकेशन का मकसद, मोबाइल और इंटरनेट सेवा देने वाली कंपनी को नेटवर्क के हिसाब से कुछ कॉन्फ़िगरेशन उपलब्ध कराना है ऐप्लिकेशन इंस्टॉल नहीं किया गया है. साथ ही, मोबाइल और इंटरनेट सेवा देने वाली कंपनी/OEM को इसमें सिर्फ़ ज़रूरी बदलाव करने चाहिए इन चीज़ों को अलग-अलग कैटगरी में बांटता है. इसके बजाय, मोबाइल और इंटरनेट सेवा देने वाली कंपनियों को मोबाइल और इंटरनेट सेवा देने वाली कंपनी का अलग से ऐप्लिकेशन उपलब्ध कराना चाहिए ताकि अपडेट उपलब्ध कराए जा सकें. इसके लिए, के तौर पर मार्क करती है.

मोबाइल और इंटरनेट सेवा देने वाली किसी कंपनी के ऐप्लिकेशन को खास अधिकार कैसे दिए जाते हैं

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

मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन को कौनसी जानकारी भेजी जाती है

मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन को नीचे दी गई वैल्यू दी गई हैं, जो इसे वैल्यू क्या हो, इस पर डाइनैमिक तौर पर फ़ैसला लिया जाता है:

  • एमसीसी
  • MNC
  • SPN
  • IMSI
  • जीआईडी1
  • जीआईडी2
  • कैरियर आईडी

कैरियर आईडी को इंटिग्रेट करने के बारे में ज़्यादा जानकारी के लिए, यहां देखें कैरियर के आईडी को CarrierConfig के साथ इंटिग्रेट करना.

लोड होने के दौरान, मोबाइल और इंटरनेट सेवा देने वाली कंपनी का कॉन्फ़िगरेशन होता है

की-वैल्यू पेयर की सूची बनती है:

  • सिम लोड होने पर (बूट या सिम हॉट स्वैप)
  • जब मोबाइल और इंटरनेट सेवा देने वाली कंपनी का ऐप्लिकेशन मैन्युअल तरीके से फिर से लोड ट्रिगर करता है
  • मोबाइल और इंटरनेट सेवा देने वाली कंपनी का ऐप्लिकेशन अपडेट होने पर

android.service.carrier.CarrierService#onLoadConfig() का संदर्भ देखें.

कॉन्फ़िगरेशन का इस्तेमाल करें

कॉन्फ़िगरेशन बनाने पर, उसमें मौजूद वैल्यू का इस्तेमाल किया जाता है का इस्तेमाल, सिस्टम कॉन्फ़िगरेशन की अलग-अलग वैल्यू सेट करने के लिए किया जाता है. इनमें ये शामिल हैं:

  • इंटरनल फ़्रेमवर्क टेलीफ़ोनी सेटिंग
  • SDK टूल से मिलने वाली कॉन्फ़िगरेशन वैल्यू. उदाहरण के लिए, SmsManager में
  • डायलर में VVM कनेक्शन वैल्यू जैसी ऐप्लिकेशन सेटिंग

कॉन्फ़िगरेशन कुंजियां

android.telephony.CarrierConfigManager में कुंजियों की सूची, सार्वजनिक SDK टूल के हिस्से के तौर पर बताई गई है और उसे एक ही एपीआई लेवल में नहीं बदला जा सकता. कुंजियों की खास जानकारी के लिए नीचे दी गई टेबल देखें.

ऐप्लिकेशन बनाएं

ऐप्लिकेशन बनाएं

आपके ऐप्लिकेशन को Android 6.0 एपीआई लेवल (23) को टारगेट करना होगा.

ऐसी क्लास का एलान करें जो android.service.carrier.CarrierService को ओवरराइड करती है

  1. आपको जो वैल्यू चाहिए उन्हें वापस पाने के लिए, onLoadConfig को बदलें service.carrier.CarrierIdentifier ऑब्जेक्ट के आधार पर सप्लाई पास हुआ.
  2. notifyConfigChangedForSubId को मामलों में कॉल करने के लिए लॉजिक जोड़ें इसमें मोबाइल और इंटरनेट सेवा देने वाली कंपनी का कॉन्फ़िगरेशन समय के साथ बदल सकता है. उदाहरण के लिए, उपयोगकर्ता अपने खाते में अतिरिक्त सेवाएं जोड़ता है).

इसका एक उदाहरण नीचे दिया गया है:

public class SampleCarrierConfigService extends CarrierService {

    private static final String TAG = "SampleCarrierConfigService";

    public SampleCarrierConfigService() {
        Log.d(TAG, "Service created");
    }

    @Override
    public PersistableBundle onLoadConfig(CarrierIdentifier id) {
        Log.d(TAG, "Config being fetched");
        PersistableBundle config = new PersistableBundle();
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_AVAILABLE_BOOL, true);
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, false);
        config.putInt(CarrierConfigManager.KEY_VOLTE_REPLACEMENT_RAT_INT, 6);
        // Check CarrierIdentifier and add more config if needed…
        return config;
    }
}

ज़्यादा जानकारी के लिए, यह देखें android.service.carrier.CarrierService संदर्भ.

मेनिफ़ेस्ट में क्लास को नाम दें

इसका एक उदाहरण नीचे दिया गया है:

<service android:name=".SampleCarrierConfigService"
android:label="@string/service_name"
android:permission="android.permission.BIND_CARRIER_SERVICES">
      <intent-filter>
      <action android:name="android.service.carrier.CarrierService"/></intent-filter>
</service>

ऐप पर इसी नाम से साइन करें सिम पर सर्टिफ़िकेट

यूज़र इंटरफ़ेस (यूआईसी) मोबाइल और इंटरनेट सेवा देने वाली कंपनी के खास अधिकार देखें. ज़रूरतें.

मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन की मदद से एपीएन जोड़ें

मोबाइल और इंटरनेट सेवा देने वाली किसी कंपनी के ऐप्लिकेशन से, प्रोग्राम के हिसाब से एपीएन जोड़ने के लिए (जैसे, सिम के दौरान सक्रियण) है, तो इसका उपयोग करें कॉन्टेंट देने वाले किसी ऐप्लिकेशन में एपीएन आइटम जोड़ने के लिए, ContentResolver एपीआई यूआरआई से पहचाना गया android.provider.Telephony.Carriers.CONTENT_URI. कॉन्टेंट यूआरआई के लिए टेबल की बनावट के बारे में ज़्यादा जानकारी के लिए, देखें Telephony.Carriers.

ज़्यादा जानकारी के लिए, यह देखें APN और CarrierConfig.

ऐप्लिकेशन का परीक्षण करें

कॉन्फ़िगरेशन ऐप्लिकेशन बनाने के बाद, अपने कोड की जांच की जा सकती है इनके साथ:

  • ऐसा सिम जिसमें मान्य हस्ताक्षर मौजूद है
  • Android 6.0 और इसके बाद के वर्शन पर चलने वाला डिवाइस. उदाहरण के लिए, कोई Android डिवाइस

कैरियर सेवा की क्षमताएं सेट करना

Android में, मोबाइल और इंटरनेट सेवा देने वाली कंपनी की क्षमताओं से यह पता चलता है कि वॉइस, मैसेज सेवा, और डेटा सेवाएं, डिवाइस पर काम करती हों. मोबाइल और इंटरनेट सेवा देने वाली कंपनियां, कैरियर तय कर सकती हैं डिवाइस के लेवल पर और सदस्यता के लिए, डिवाइस की सेवा से जुड़ी सुविधाएं वाले लेवल (Android 15 या इसके बाद वाले वर्शन) होने चाहिए.

डिवाइस-लेवल पर सेवा देने की सुविधाएं

डिवाइस-लेवल की सेवा की क्षमताएं तब कॉन्फ़िगर की जाती हैं, जब डिवाइस बनाया गया हो (मैन्युफ़ैक्चरिंग के बाद बदला नहीं जा सकता). मोबाइल और इंटरनेट सेवा देने वाली कंपनियां ये काम कर सकती हैं नीचे दिए गए सिस्टम रिसॉर्स की मदद से, डिवाइस के लेवल की क्षमताएं तय करें ओवरराइड:

ऐप्लिकेशन, डिवाइस लेवल की सेवा की क्षमताओं के बारे में क्वेरी कर सकते हैं. इसके लिए, ये तरीके अपनाएं एपीआई:

सदस्यता के लेवल पर मिलने वाली सेवाएं

Android 15 या उसके बाद के वर्शन वाले डिवाइसों के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनियां यह तय कर सकती हैं और डिवाइस की सदस्यता के लेवल पर, उसकी सेवा की क्षमताओं को पूरा करता है. सदस्यता-स्तर की सेवा तय करने के लिए करने के लिए, CarrierConfigManager.KEY_CELLULAR_SERVICE_CAPABILITIES_INT_ARRAY अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एपीआई. उदाहरण के लिए, यह बताने के लिए कि सदस्यता सिर्फ़ डेटा है, SubscriptionManager#SERVICE_CAPABILITY_DATA.

ऐप्लिकेशन (पहले से लोड किए गए सिस्टम ऐप्लिकेशन और तीसरे पक्ष के ऐप्लिकेशन) मोबाइल और इंटरनेट सेवा देने वाली कंपनी से क्वेरी कर सकते हैं किसी खास सदस्यता के लिए, उस सदस्यता को SubscriptionInfo.getServiceCapabilities() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका. इससे ऐप्लिकेशन डेवलपर, ऐप्लिकेशन के उपयोगकर्ता अनुभव को अपनी पसंद के हिसाब से बना सकते हैं. के लिए उपलब्ध सुविधाएं. उदाहरण के लिए, ऐप्लिकेशन डेवलपर ये काम कर सकते हैं पक्का करें कि डायलर ऐप्लिकेशन कॉल करने की अनुमति नहीं देता, अगर उपयोगकर्ता किसी सिर्फ़ डेटा के लिए सदस्यता.

ऐसी सेवा की सुविधाएं देने वाले एपीआई जो अब सेवा में नहीं हैं

Android 15 की शुरुआत से ही, Android में डिवाइस-लेवल और दोनों के लिए उपलब्ध सदस्यता-लेवल की सेवा देने की सुविधाएं. इस बदलाव की वजह से, मौजूदा डिवाइस-लेवल सुविधाओं को समझने में आसान बनाने के लिए, एपीआई के नाम बदले गए. इन टेबल की सूचियां अब काम नहीं करने वाले एपीआई और Android 15 में बदले गए नाम वाले एपीआई:

अब काम नहीं करता (Android 14 या इससे पहले के वर्शन के लिए) इसके बराबर है (Android 15 या इसके बाद वाले वर्शन)
TelephonyManager.isVoiceCapable() TelephonyManager.isDeviceVoiceCapable()
TelephonyManager.isSmsCapable() TelephonyManager.isDeviceSmsCapable()