हम फ़ोरग्राउंड सेवाओं के कुछ अन्य टाइप और इनकी नीति से जुड़ी नई पाबंदियां पेश कर रहे हैं. इनकी मदद से, डेवलपर अपने उपयोगकर्ताओं को लगातार बेहतर अनुभव देने वाले ऐप्लिकेशन बना पाएंगे. इस लेख में, फ़ोरग्राउंड सेवा से जुड़ी उन ज़रूरी शर्तों के बारे में बताया गया है जो आने वाले समय में लागू होंगी. साथ ही, Play Console में फ़ोरग्राउंड सेवा के बारे में जानकारी देने का तरीका भी बताया गया है. इसमें उन ज़रूरी शर्तों के बारे में भी बताया गया है जो फ़ुल-स्क्रीन इंटेंट वाली सूचनाओं के इस्तेमाल पर लागू होंगी.
Android 14 के लिए, फ़ोरग्राउंड सेवा से जुड़ी ज़रूरी शर्तें
Android 14 और उसके बाद के वर्शन पर चलने वाले ऐप्लिकेशन में फ़ोरग्राउंड सेवाओं का इस्तेमाल करने से पहले, नीचे बताई गई कार्रवाइयां करनी होंगी. इससे, बैकग्राउंड में आपके ऐप्लिकेशन के काम करने की वजह को साफ़ तौर पर बताने और यह पता करने में भी मदद मिलती है कि किन मामलों में फ़ोरग्राउंड सेवाओं का इस्तेमाल करना सही है:
- अपनी मेनिफ़ेस्ट फ़ाइल में जाकर, फ़ोरग्राउंड सेवा के टाइप बताएं. आपको जितनी भी फ़ोरग्राउंड सेवाएं इस्तेमाल करनी हैं उन सबके लिए ऐसा करना होगा.
- अगर चुने गए टाइप के लिए ज़रूरी हो, तो उसके लिए, फ़ोरग्राउंड सेवा की अनुमति की जानकारी दें और उसका अनुरोध करें.
डिवाइस और नेटवर्क के गलत इस्तेमाल को रोकने से जुड़ी नीति के फ़ोरग्राउंड सेवाओं (एफ़जीएस) के लिए अनुमतियां सेक्शन में, फ़ोरग्राउंड सेवाओं का इस्तेमाल करने से जुड़ी ज़रूरी शर्तों की पूरी जानकारी दी गई है. Android 14 में अपडेट करने पर, आपको ऐप्लिकेशन में इस्तेमाल की जा रही फ़ोरग्राउंड सेवा के टाइप बताने होंगे.
Play Console में फ़ोरग्राउंड सेवा की जानकारी देना
अगर आपके ऐप्लिकेशन, Android 14 और उसके बाद वाले वर्शन को टारगेट करते हैं, तो आपको ऐप्लिकेशन में इस्तेमाल की गई सभी फ़ोरग्राउंड सेवाओं के टाइप का एलान नए सिरे से करना होगा. इसके लिए, Play Console के ऐप्लिकेशन का कॉन्टेंट पेज (नज़र रखें और बेहतर बनाएं > ऐप्लिकेशन का कॉन्टेंट) पर जाएं.
आपने फ़ोरग्राउंड सेवा के जिस टाइप का एलान किया है उसके लिए आपको ये काम करने होंगे:
- ऐप्लिकेशन के उन सभी मुख्य फ़ंक्शन के बारे में बताना होगा जिनके लिए अलग-अलग टाइप की फ़ोरग्राउंड सेवा का इस्तेमाल किया जा रहा है.
- उपयोगकर्ताओं पर पड़ने वाले असर के बारे में बताना होगा, अगर:
- सिस्टम की वजह से टास्क पूरा होने में देर हो जाए (तुरंत शुरू न हो पाए); और/या
- सिस्टम की वजह से टास्क पूरा होने में कोई रुकावट आ जाए (रुक जाए और/या रीस्टार्ट हो जाए).
- फ़ोरग्राउंड सेवा की हर सुविधा की जानकारी देने वाले वीडियो का लिंक जोड़ना होगा. वीडियो में यह जानकारी होना चाहिए कि सुविधा को चालू करने के लिए, उपयोगकर्ता को आपके ऐप्लिकेशन में दिए गए कौनसे निर्देशों का पालन करना चाहिए.
- फ़ोरग्राउंड सेवा के हर टाइप के लिए, इस्तेमाल किए जाने के हिसाब से उदाहरण चुनें. आपको एक सूची उपलब्ध कराई जाएगी. इसमें पहले से सेट किए गए इस्तेमाल के उदाहरण होंगे. इनमें से आपको अपने हिसाब से उदाहरण चुनने होंगे. इस टेबल में, फ़ोरग्राउंड सेवा के अलग-अलग टाइप के हिसाब से मैप किए गए, इस्तेमाल के चुनिंदा उदाहरण दिए गए हैं. इस सूची में सभी उदाहरण शामिल नहीं किए गए हैं. अगर इस सूची में इस्तेमाल का वह उदाहरण नहीं दिखता है जिसे आपको चुनना है, तो आपके पास इस्तेमाल के उदाहरण को मैन्युअल तरीके से डालने का विकल्प होता है.
इस्तेमाल के कुछ उदाहरणों में, हम अन्य एपीआई इस्तेमाल करने का सुझाव देते हैं. इस्तेमाल के उदाहरणों और उनके लिए सुझाए गए अन्य एपीआई की सूची देखने के लिए, Android Developers साइट पर जाएं.
ध्यान दें: नीचे दी गई सूची में इस्तेमाल के सभी उदाहरणों को शामिल नहीं किया गया है. यह तय करने के लिए कि ऐक्सेस, एफ़जीएस के हिसाब से सही है या नहीं, फ़ोरग्राउंड सेवाओं के लिए अनुमतियां (एफ़जीएस) की नीति देखें. इनके बारे में यहां नहीं बताया गया है.
एफ़जीएस का टाइप | इस्तेमाल के उदाहरण | जानकारी और उदाहरण |
---|---|---|
TYPE_CAMERA |
बैकग्राउंड में कैमरे से स्ट्रीम करना | इसका इस्तेमाल करके, बैकग्राउंड में कैमरे को ऐक्सेस करना जारी रखा जा सकता है. उदाहरण के लिए, ऐसे वीडियो चैट ऐप्लिकेशन जो मल्टीटास्किंग (एक साथ कई काम करना) की सुविधा देते हैं. |
TYPE_CONNECTED_DEVICE |
किसी बाहरी डिवाइस पर लगातार डेटा ट्रांसफ़र करना | बाहरी डिवाइसों के साथ इंटरैक्शन जिसमें ब्लूटूथ, एनएफ़सी, आईआर, यूएसबी या इंटरनेट की मदद से डेटा ट्रांसफ़र भी शामिल है. उदाहरण के लिए, पहने जाने वाले, बच्चों की निगरानी करने वाले, कार के लिए बनाए गए डिवाइस, हेडसेट. |
TYPE_DATA_SYNC |
नेटवर्क की मदद से डेटा ट्रांसफ़र करना: डेटा का बैकअप लेने और उसे वापस पाने की सुविधा | खास तौर पर, इसे उन सुविधाओं के लिए इस्तेमाल किया जाता है जो उपयोगकर्ता ने शुरू की हों. उदाहरण के लिए, क्लाउड पर बैक अप लेने के लिए कोई खास फ़ोटो चुनना या हर दिन सभी नई फ़ोटो का अपने-आप बैकअप लेने की सुविधा चुनना. |
नेटवर्क की मदद से डेटा ट्रांसफ़र करना: डेटा अपलोड या डाउनलोड करना | उदाहरण के लिए, डेटा फ़ेच करना और सर्वर साइड प्रोसेसिंग करना. | |
डेटा को स्थानीय तौर पर प्रोसेस करना: डेटा को इंपोर्ट या एक्सपोर्ट करना | इसमें, एसडी कार्ड से फ़ाइलों को दूसरे डिवाइस में भेजने की सुविधा भी शामिल है. | |
डेटा को स्थानीय तौर पर प्रोसेस करना: अन्य | इसका इस्तेमाल खास तौर पर, उन सुविधाओं के लिए किया जाता है जो उपयोगकर्ता ने शुरू की हों. इसे सिस्टम या सर्वर से शुरू किए गए कामों के लिए इस्तेमाल नहीं किया जाता. उदाहरण के लिए, एन्क्रिप्ट (सुरक्षित) करने का तरीका और साइज़ बदलना. | |
TYPE_HEALTH |
स्वास्थ्य की जानकारी से जुड़े डेटा को सिंक करना | इसका इस्तेमाल फ़िटनेस कैटगरी में शामिल ऐप्लिकेशन के लिए, स्वास्थ्य से जुड़े डेटा को सिंक करने के लिए किया जा सकता है. यह डेटा, अलग-अलग ऐप्लिकेशन में उपलब्ध हो सकता है या हो सकता है कि इसे उपयोगकर्ता के डिवाइस पर मौजूद ट्रैकिंग की सुविधा का इस्तेमाल करके इकट्ठा किया गया हो. उदाहरण के लिए, कदमों की संख्या गिनने, कसरत को ट्रैक करने के लिए. |
TYPE_LOCATION |
बैकग्राउंड में जगह की जानकारी ऐक्सेस करने के अनुरोध से जुड़े अपडेट: जगह की ऐसी जानकारी जिसे उपयोगकर्ता ने शेयर करने की अनुमति दी है | उदाहरण के लिए, Find My Friend और गाड़ी की गतिविधि को ट्रैक करने की सुविधा. |
बैकग्राउंड में जगह की जानकारी ऐक्सेस करने के अनुरोध से जुड़े अपडेट: नेविगेशन | उदाहरण के लिए, मैप में ड्राइविंग नेविगेशन मोड का इस्तेमाल जारी रखना और राइड शेयर करने के लिए राइड ट्रैकिंग की सुविधा चालू करना. | |
जियोफ़ेंसिंग | इसका इस्तेमाल करके, अपने हिसाब से पैरामीटर तय किए जा सकते हैं. | |
TYPE_MEDIA_PLAYBACK |
मीडिया प्लेबैक | इसका इस्तेमाल करके, स्ट्रीमिंग समेत कोई भी ऑडियो या वीडियो बैकग्राउंड में चलाया जा सकता है. |
पिक्चर में पिक्चर दिखाना | इसका इस्तेमाल करके, बैकग्राउंड में मिनिमाइज़ करके वीडियो देखे जा सकते हैं. | |
TYPE_MEDIA_PROJECTION |
MediaProjection API की मदद से, मीडिया या कॉन्टेंट प्रोजेक्शन और स्ट्रीमिंग या रिकॉर्डिंग | मीडिया को नॉन-प्राइमरी डिसप्ले या बाहरी डिवाइसों पर प्रोजेक्ट करने के लिए, MediaProjection API इस्तेमाल किए जा सकते हैं. इनकी मदद से, स्ट्रीमिंग भी की जा सकती है. |
FOREGROUND_SERVICE_MEDIA_PROCESSING |
मीडिया ट्रांसकोडिंग | मीडिया ऐसेट पर समय लेने वाली कार्रवाइयां करना, जैसे कि मीडिया को अलग-अलग फ़ॉर्मैट में बदलना. |
TYPE_MICROPHONE |
बैकग्राउंड में ऑडियो ऐक्सेस करना | इसका इस्तेमाल करके ऑडियो इनपुट कैप्चर किया जा सकता है. उदाहरण के लिए, आवाज़ की रिकॉर्डिंग और बिना सेव किए वर्चुअल असिस्टेंट के लिए बोलकर दिए गए निर्देश. |
TYPE_PHONE_CALL |
कॉल करने की सुविधा: Cellular/VoiP/Telecom APIs | अलग-अलग डायलर सुविधाओं के साथ काम करने के लिए इस्तेमाल की जाती है. |
TYPE_REMOTE_MESSAGING |
टेक्स्ट कम्यूनिकेशन को किसी दूसरे डिवाइस पर भेजना | जब उपयोगकर्ता एक डिवाइस पर किसी बातचीत को अधूरा छोड़कर किसी अन्य डिवाइस से मैसेज करने लगता है, तो इस सेवा की मदद से बातचीत वहीं से शुरू की जा सकती है जहां पर उपयोगकर्ता ने छोड़ी थी. उदाहरण के लिए, इस सेवा का इस्तेमाल करके, उपयोगकर्ता किसी वेब क्लाइंट की मदद से टेक्स्ट मैसेज भेज सकते हैं. इसके लिए, उन्हें क्यूआर कोड स्कैन करना होता है, जिससे वेब क्लाइंट और फ़ोन के बीच में कनेक्शन बन जाता है. इसमें, एसएमएस सेवा के अलावा अन्य सेवाएं या सुविधाएं भी शामिल हो सकती हैं. |
एलान के लिए इस्तेमाल किया जाने वाला फ़ॉर्म, नवंबर 2023 से उपलब्ध होगा. हम आपको फ़ॉर्म भरने, सुझाव पाने, और ज़रूरत के हिसाब से बदलाव करने के लिए समय देंगे.
Android 14 के लिए फ़ुल-स्क्रीन इंटेंट के इस्तेमाल की ज़रूरी शर्तें
ज़्यादा प्राथमिकता वाले मैसेज भेजने के लिए, शायद आपको फ़ुल-स्क्रीन इंटेंट वाली सूचनाएं इस्तेमाल करनी पड़ें. इन मैसेज पर उपयोगकर्ता को तुरंत ध्यान देने की ज़रूरत होती है. हम USE_FULL_SCREEN_INTENT
अनुमति के इस्तेमाल को लेकर पाबंदियां लगा रहे हैं. इसका मकसद, यह पक्का करना है कि Android 14 के लिए इस अनुमति का इस्तेमाल, ज़्यादा प्राथमिकता वाले मामलों में ही किया जाए. इस तरह सूचनाओं पर पाबंदियां लगाने से, उपयोगकर्ताओं के अनुभव को ज़्यादा बेहतर बनाया जाता है.
अगर आपने USE_FULL_SCREEN_INTENT
वाली अनुमति का इस्तेमाल किया है, तो 31 मई, 2024 से Play Console में एलान वाला फ़ॉर्म भरना ज़रूरी है. इससे यह पता चलेगा कि आपके ऐप्लिकेशन के मुख्य फ़ंक्शन को अनुमति मिली हुई है. इससे यह भी पता चलेगा कि आपका ऐप्लिकेशन, इस अनुमति को अपने-आप चालू करने की ज़रूरी शर्तें पूरी करता है. Android 14 और इसके बाद के वर्शन को टारगेट करने वाले ऐसे ऐप्लिकेशन के लिए 22 जनवरी, 2025 से यह अनुमति डिफ़ॉल्ट रूप से चालू हो जाएगी जो कॉल या अलार्म की सुविधा उपलब्ध कराते हैं. इसके अलावा, अन्य ऐप्लिकेशन में USE_FULL_SCREEN_INTENT वाली अनुमति का इस्तेमाल करने के लिए, आपको उपयोगकर्ता की अनुमति लेनी होगी. जिन ऐप्लिकेशन के लिए एलान वाला फ़ॉर्म नहीं भरा गया है या जो अनुमति के डिफ़ॉल्ट रूप से चालू होने की ज़रूरी शर्तें पूरी नहीं करते हैं उनके डेवलपर को उपयोगकर्ताओं से इस अनुमति के इस्तेमाल की मंज़ूरी लेनी होगी. यह मंज़ूरी सिर्फ़ पहली बार आपका ऐप्लिकेशन इंस्टॉल करने पर ली जाएगी. अगर मंज़ूरी नहीं मिलती है, तो आपको इस अनुमति से जुड़ी सुविधाओं को बंद करना होगा.
अक्सर पूछे जाने वाले सवाल
Android 14 में फ़ोरग्राउंड सेवाओं में क्या बदलाव हो रहे हैं?हम फ़ोरग्राउंड सेवा के कई नए टाइप पेश कर रहे हैं. इसमें, फ़ोरग्राउंड सेवा का टाइप और उससे जुड़ी अनुमति के बारे में बताना भी ज़रूरी होगा. जैसे, "कैमरा" के तौर पर फ़ोरग्राउंड सेवा के टाइप का एलान करने पर, आपको FOREGROUND_SERVICE_CAMERA की अनुमति का भी एलान करना होगा. फ़ोरग्राउंड का इस्तेमाल, डिवाइस और नेटवर्क के गलत इस्तेमाल से जुड़ी नीति में बताई गई अन्य ज़रूरी शर्तों के मुताबिक भी होना चाहिए.
अपनी फ़ोरग्राउंड सेवा के इस्तेमाल से जुड़ा सटीक टाइप चुनें. उदाहरण के लिए, उपयोगकर्ता की कसरतों को ट्रैक करने वाले ऐप्लिकेशन के लिए, फ़ोरग्राउंड सेवा के टाइप के तौर पर "स्वास्थ्य" का एलान किया जा सकता है. अगर लागू हो, तो फ़ोरग्राउंड सेवाओं के लिए टाइप के एक से ज़्यादा विकल्प भी चुने जा सकते हैं.
जब Android 14 को टारगेट करने वाले ऐप्लिकेशन, फ़ोरग्राउंड सेवा का इस्तेमाल करते हैं, तब डेवलपर को फ़ोरग्राउंड सेवा के उस खास टाइप के लिए, फ़ोरग्राउंड सेवा की सही अनुमति का एलान करना होगा. उदाहरण के लिए, अगर आपके ऐप्लिकेशन में फ़ोरग्राउंड सेवा के लिए "जगह की जानकारी" टाइप का इस्तेमाल किया जाता है, तो आपको FOREGROUND_SERVICE_LOCATION अनुमति का एलान करना होगा. फ़ोरग्राउंड सेवा के किसी खास टाइप के लिए ज़रूरी अनुमतियों को सामान्य अनुमतियां कहा जाता है. ऐप्लिकेशन को इंस्टॉल करते समय, इन अनुमतियों के लिए डिफ़ॉल्ट रूप से मंज़ूरी मिल जाती है. उपयोगकर्ता इन अनुमतियों को रद्द नहीं कर सकते.
फ़ोरग्राउंड सेवा के टाइप के आधार पर, सिस्टम से जुड़ी कुछ और शर्तें भी शामिल हो सकती हैं. रनटाइम की अनुमतियां भी इनमें शामिल हो सकती हैं. इनका इस्तेमाल करने से पहले, उपयोगकर्ताओं की अनुमति की ज़रूरत होती है. उदाहरण के लिए, अगर फ़ोरग्राउंड सेवा के टाइप के तौर पर "जगह की जानकारी" का इस्तेमाल किया जा रहा है, तो उपयोगकर्ता को ACCESS_COARSE_LOCATION या ACCESS_FINE_LOCATION की अनुमति भी देनी होगी. कृपया नई जानकारी के लिए दस्तावेज़ देखें.
अगर इस्तेमाल का उदाहरण, फ़ोरग्राउंड सेवा के इस्तेमाल से जुड़ी अन्य ज़रूरी शर्तों को पूरा करता है (जैसा कि नीति में बताया गया है), तो कुछ खास मामलों में फ़ोरग्राउंड सेवा के टाइप के तौर पर TYPE_SPECIAL_USE
का एलान किया जा सकता है. फ़ोरग्राउंड सेवा के सभी टाइप को समीक्षा के बाद ही मंज़ूरी दी जाती है.
उपयोगकर्ता को दिखने का मतलब है कि उपयोगकर्ता को यह जानकारी होनी चाहिए कि उसके डिवाइस पर फ़ोरग्राउंड सेवा से जुड़ा कोई टास्क चल रहा है. अगर उपयोगकर्ता किसी टास्क पर खुद कोई कार्रवाई करते हैं, तब ही माना जाएगा कि उन्हें उस टास्क की जानकारी है. उदाहरण के लिए, अगर उपयोगकर्ता कोई गाना चलाए या अपनी किसी गतिविधि को ट्रैक करे. आपके ऐप्लिकेशन में, डिवाइस के टास्क बार में साफ़ तौर पर और सटीक सूचना देकर उपयोगकर्ताओं को उस दौरान चल रही फ़ोरग्राउंड सेवा की जानकारी दी जा सकती है.
अगर आपके ऐप्लिकेशन में Android 14 से पहले के किसी Android वर्शन को टारगेट किया जा रहा है, तो अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में मौजूद <service> एलिमेंट में जाकर android:foregroundServiceType
एट्रिब्यूट का इस्तेमाल करना जारी रखें.
उपयोगकर्ता की ओर से किए जाने वाले डेटा ट्रांसफ़र के टास्क को इस तरह से डिज़ाइन किया गया है कि नेटवर्क पर किए जाने वाले डेटा ट्रांसफ़र को आसान बनाया जा सके. इनमें कंस्ट्रेंट ट्रैकिंग की सुविधा होती है और ये वेकलॉक को अपने-आप मैनेज करते हैं. फ़ोरग्राउंड सेवा के dataSync टाइप में, डेटा को स्थानीय तौर पर या किसी नेटवर्क पर ट्रांसफ़र किया जा सकता है. इसके अलावा, डिवाइस पर स्थानीय रूप से डेटा को प्रोसेस करने की सुविधा भी शामिल हो सकती है. अगर आपको किसी उपयोगकर्ता के अलग से किए गए अनुरोध के जवाब में, नेटवर्क (जैसे कि वाई-फ़ाई, मोबाइल या ब्लूटूथ) पर डेटा ट्रांसफ़र करना है, तो हमारा सुझाव है कि फ़ोरग्राउंड सेवा के dataSync टाइप के बजाय, डेटा को ट्रांसफ़र करने की वह प्रक्रिया अपनाएं जो उपयोगकर्ता ने शुरू की है.
Android 14 के लिए, USE_FULL_SCREEN_INTENT
को सामान्य अनुमति वाली कैटगरी से हटाकर खास ऐप्लिकेशन को ऐक्सेस करने की अनुमति वाली कैटगरी में शामिल कर दिया जाएगा. साथ ही, सिर्फ़ उन ऐप्लिकेशन को USE_FULL_SCREEN_INTENT
की अनुमति अपने-आप मिलेगी जिनका मुख्य फ़ंक्शन, फ़ोन या वीडियो कॉल रिसीव करने या अलार्म सेट करने जैसे ज़्यादा प्राथमिकता वाले काम करना हो. मुख्य फ़ंक्शन को अपने ऐप्लिकेशन की मुख्य सुविधा के तौर पर समझें. इसके बिना, ऐप्लिकेशन काम नहीं करता या उसे इस्तेमाल नहीं किया जा सकता. हालांकि, सामान्य अनुमति की कैटगरी में हुए बदलाव के बाद भी अन्य ऐप्लिकेशन इस अनुमति का इस्तेमाल कर सकते हैं, लेकिन इसके लिए उन्हें उपयोगकर्ता की अनुमति लेनी होगी.
ये बदलाव 31 मई, 2024 से लागू होंगे.
अगर आपका ऐप्लिकेशन, Android 14 और इसके बाद के वर्शन को टारगेट करता है, तो आपके पास यह एलान करने का विकल्प है कि आपके ऐप्लिकेशन का मुख्य फ़ंक्शन, फ़ुल-स्क्रीन इंटेंट वाली सूचनाएं दिखाना है. इसके लिए, Play Console में ऐप्लिकेशन का कॉन्टेंट पेज (नज़र रखें और बेहतर बनाएं > ऐप्लिकेशन का कॉन्टेंट) पर जाएं. एलान के लिए इस्तेमाल किया जाने वाला फ़ॉर्म, अप्रैल 2024 से उपलब्ध होगा. हम आपको फ़ॉर्म भरने के लिए समय देंगे.