Android 9 में, मोबाइल और इंटरनेट सेवा देने वाली कंपनियां, प्लान की आधिकारिक जानकारी सीधे तौर पर सेटिंग ऐप्लिकेशन में उपयोगकर्ताओं को दिखा सकती हैं. इससे, उपयोगकर्ताओं को प्लान की जानकारी समझने में आसानी होती है और उन्हें मदद के लिए कॉल करने की ज़रूरत नहीं पड़ती. Android 4.0 और इसके बाद के वर्शन वाले डिवाइसों पर, उपयोगकर्ता सेटिंग ऐप्लिकेशन में जाकर, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्लान की जानकारी मैन्युअल तरीके से कॉन्फ़िगर कर सकते हैं. जैसे, डेटा के इस्तेमाल को मैनेज करने के लिए, चेतावनियां और सीमाएं सेट करना.
मोबाइल और इंटरनेट सेवा देने वाली कंपनी के हिसाब से कॉन्फ़िगरेशन
मोबाइल और इंटरनेट सेवा देने वाली कंपनियां, डेटा प्लान कॉन्फ़िगर करने के लिए, अपने मौजूदा
Android ऐप्लिकेशन में सुविधाएं जोड़ने के लिए
SubscriptionPlan एपीआई का इस्तेमाल कर सकती हैं.
एपीआई को अलग-अलग तरह के डेटा प्लान के साथ काम करने के लिए डिज़ाइन किया गया है. इनमें, बार-बार होने वाले और एक बार के प्लान के साथ-साथ, समय के साथ बदलने वाले प्लान भी शामिल हैं.
यहां, हर महीने रिन्यू होने वाले डेटा प्लान को कॉन्फ़िगर करने का एक उदाहरण दिया गया है:
SubscriptionManager sm =
context.getSystemService(SubscriptionManager.class);
sm.setSubscriptionPlans(subId, Lists.newArrayList(
SubscriptionPlan.Builder.createRecurringMonthly(
ZonedDateTime.parse("2016-12-03T10:00:00Z"))
.setTitle("G-Mobile")
.setDataLimit(4_000_000_000L,
SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)
.setDataUsage(200_493_293L, dataUsageTimestamp)
.build()));
डिवाइस, किसी ऐप्लिकेशन को सिर्फ़ इन स्थितियों में डेटा प्लान कॉन्फ़िगर करने की अनुमति देता है:
- सिम कार्ड में, साफ़ तौर पर यह तय किया गया हो कि कौनसे ऐप्लिकेशन इसे मैनेज कर सकते हैं. इसकी जानकारी,
SubscriptionManager.canManageSubscription()में दी गई है. - मोबाइल और इंटरनेट सेवा देने वाली कंपनी ने
KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRINGकी वैल्यू,CarrierConfigManagerके ज़रिए पुश की हो, ताकि यह बताया जा सके कि कौनसे ऐप्लिकेशन, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के डेटा प्लान मैनेज कर सकते हैं. - डिवाइस में, सिस्टम इमेज में बना कोई ऐसा ऐप्लिकेशन मौजूद हो जिसके पास
MANAGE_SUBSCRIPTION_PLANSकी अनुमति हो.
पहली दो स्थितियों में, उपयोगकर्ता मोबाइल और इंटरनेट सेवा देने वाली कंपनी का ऐप्लिकेशन इंस्टॉल कर सकता है. इसके लिए, यह ज़रूरी नहीं है कि ऐप्लिकेशन को फ़ैक्ट्री में सिस्टम इमेज में पहले से इंस्टॉल किया गया हो. ओएस यह पक्का करता है (और सीडीडी के लिए यह ज़रूरी है) कि कॉन्फ़िगर किए गए डेटा प्लान की सभी जानकारी सुरक्षित हो और यह जानकारी सिर्फ़ मोबाइल और इंटरनेट सेवा देने वाली कंपनी के उस ऐप्लिकेशन के लिए उपलब्ध हो जिसने ओएस को यह जानकारी दी थी.
एक सुझाव यह है कि मोबाइल और इंटरनेट सेवा देने वाली कंपनी का ऐप्लिकेशन, डेटा प्लान की जानकारी को हर दिन अपडेट करने के लिए, बैकग्राउंड में चलने वाली सेवा का इस्तेमाल करे. हालांकि, मोबाइल और इंटरनेट सेवा देने वाली कंपनियां, अलग-अलग तरह के तरीकों का इस्तेमाल कर सकती हैं. जैसे, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के इंटरनल एसएमएस मैसेज के ज़रिए, डेटा प्लान की जानकारी पाना. बैकग्राउंड में चलने वाली सेवाओं को, ऐसे काम के साथ लागू करना सबसे अच्छा होता है जो
JobScheduler का इस्तेमाल करता है
setRequiresDeviceIdle()
और
setRequiresCharging().
ओएस के हिसाब से इस्तेमाल
ओएस, SubscriptionPlan एपीआई से मिली डेटा प्लान की जानकारी का इस्तेमाल इन तरीकों से करता है:
- प्लान की जानकारी, सेटिंग ऐप्लिकेशन के ज़रिए दिखाई जाती है, ताकि उपयोगकर्ताओं को डेटा के इस्तेमाल की सटीक जानकारी दिखे. साथ ही, अपग्रेड/अपसेल के अवसरों के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन के डीप लिंक सीधे तौर पर उपलब्ध कराए जा सकें.
- डेटा के इस्तेमाल की चेतावनी और सीमा की सूचना के थ्रेशोल्ड, प्लान की जानकारी के आधार पर अपने-आप कॉन्फ़िगर हो जाते हैं. चेतावनी, सीमा के 90% पर सेट होती है.
- अगर मोबाइल और इंटरनेट सेवा देने वाली कंपनी, कुछ समय के लिए यह बताती है कि नेटवर्क "बिज़ी", तो ओएस, JobScheduler के उन कामों में देरी करता है जिन्हें समय के हिसाब से बदला जा सकता है. इससे, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के नेटवर्क पर लोड कम हो जाता है.
- अगर मोबाइल और इंटरनेट सेवा देने वाली कंपनी, कुछ समय के लिए यह बताती है कि नेटवर्क "बिना शुल्क वाला", है, तो ओएस, सेल्युलर कनेक्शन को "बिना शुल्क वाला" बता सकता है. ऐसा तब तक किया जा सकता है, जब तक मोबाइल और इंटरनेट सेवा देने वाली कंपनी, इस सेटिंग को हटा नहीं देती या जब तक टाइम आउट की वैल्यू (अगर दी गई है) नहीं पहुंच जाती.
- उपयोगकर्ता के मौजूदा डेटा के इस्तेमाल की तुलना, डेटा की कुल सीमा से करके, ओएस बिलिंग साइकल के आखिर में, उपयोगकर्ता के सामान्य डेटा के इस्तेमाल का अनुमान लगाता है. साथ ही, उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, बचे हुए डेटा का 10% हिस्सा सुरक्षित रखता है. उदाहरण के लिए, ऐप्लिकेशन को मल्टी-पाथ डेटा का इस्तेमाल करने की अनुमति देकर.
कस्टमाइज़ेशन और पुष्टि करना
Android के सेटिंग ऐप्लिकेशन में, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के हिसाब से कॉन्फ़िगर किए गए डेटा प्लान की सभी जानकारी दिखती है. इससे, उपयोगकर्ताओं को मोबाइल और इंटरनेट सेवा देने वाली कंपनी के साथ अपने संबंध की सटीक स्थिति दिखती है. साथ ही, उपयोगकर्ताओं को अपना प्लान अपग्रेड करने के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन का ऐक्सेस मिलता है. सेटिंग ऐप्लिकेशन को कस्टमाइज़ करने वाले डिवाइस बनाने वाली कंपनियों को, यह जानकारी दिखाने की सलाह दी जाती है.
इस पेज पर बताए गए SubscriptionManager एपीआई की जांच, android.telephony.cts.SubscriptionManagerTest से की जाती है. इससे यह पक्का होता है कि डेटा प्लान
की जानकारी को मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन कॉन्फ़िगर कर सकते हैं और ओएस में बदलाव किए जा सकते हैं.