Android की भूमिकाएं

भूमिका, सिस्टम में मौजूद एक यूनीक नाम होता है. यह कुछ अनुमतियों और खास अधिकारों से जुड़ा होता है. ऐप्लिकेशन, Android API के ज़रिए कुछ भूमिकाएं निभाने का अनुरोध कर सकते हैं. खास तौर पर, RoleManager क्लास में मौजूद तरीकों को शुरू करके.

उपलब्ध भूमिकाओं और उनसे जुड़ी ज़रूरी शर्तों की सूची यहां देखें:

भूमिका ज़रूरी शर्तें
ASSISTANT इनमें से कम से कम एक:
  • ऐप्लिकेशन में ऐसी ऐक्टिविटी है जो असिस्ट ऐक्शन करती है. इसके लिए, उपयोगकर्ता के कॉन्टेक्स्ट की जानकारी दी जाती है. जैसे, फ़ोरग्राउंड ऐप्लिकेशन के पैकेज का नाम और उससे जुड़े कॉन्टेक्स्ट की जानकारी.
  • ऐप्लिकेशन में, आवाज़ से इंटरैक्ट करने की सुविधा हमेशा चालू रहती है. इसके लिए, android.permission.BIND_VOICE_INTERACTION अनुमति की ज़रूरत होती है. इस अनुमति की मदद से, आवाज़ पहचानने की सुविधा और आवाज़ से इंटरैक्ट करने वाले सेशन होस्ट किए जा सकते हैं. इसके अलावा, ऐप्लिकेशन में एक खास फ़्लैग होता है. इससे पता चलता है कि सेवा, असिस्ट ऐक्शन को मैनेज कर सकती है.
BROWSER इनमें से सभी:
  • ऐप्लिकेशन में ऐसी गतिविधि मौजूद है जिसे ऐप्लिकेशन, इंप्लिसिट इंटेंट के अनुरोधों के ज़रिए शुरू कर सकते हैं. इससे http:// पते से जुड़ा वेब पेज दिखता है.
  • ऐप्लिकेशन को लिंक के बीच नेविगेशन मैनेज करना होगा. इसका मतलब है कि अगर उपयोगकर्ता कोई वेब पेज देख रहा है और टेक्स्ट में मौजूद किसी http:// पते पर क्लिक करता है, तो ऐप्लिकेशन को चुने गए लिंक से जुड़ा कॉन्टेंट दिखाना चाहिए. इसके लिए, उपयोगकर्ता को कोई और कार्रवाई करने की ज़रूरत नहीं होनी चाहिए.
  • ऐप्लिकेशन को वेब पेजों को डिवाइस की मौजूदा जगह की जानकारी देने की ज़रूरत होती है. ऐसा तब होता है, जब अनुरोध किया जाता है और उपयोगकर्ता अनुरोध को स्वीकार करता है.
DIALER इनमें से सभी:
  • ऐप्लिकेशन में ऐसी गतिविधि है जिसे ऐप्लिकेशन, इंप्लिसिट इंटेंट के अनुरोधों के ज़रिए शुरू कर सकते हैं. इससे डिवाइस पर कॉल के दौरान, इन-कॉल यूज़र इंटरफ़ेस मिलता है.
  • ऐप्लिकेशन, इनकमिंग कॉल इंटेंट को मैनेज कर सकता है. साथ ही, उपयोगकर्ता को कॉल से जुड़ी जानकारी (जैसे, कॉल करने वाले का फ़ोन नंबर) दिखा सकता है. इसके अलावा, उपयोगकर्ता को कॉल का जवाब देने या उसे अस्वीकार करने की सुविधा दे सकता है.
  • ऐप्लिकेशन, उपयोगकर्ता को कॉल करने और अपने डिवाइस पर कॉल का इतिहास देखने की सुविधा देता है.
SMS इनमें से सभी:
  • ऐप्लिकेशन, एसएमएस ऐप्लिकेशन के लिए तय की गई सभी ज़रूरी शर्तों को पूरा करता हो.
  • ऐप्लिकेशन में ऐसी गतिविधि है जिसे अन्य ऐप्लिकेशन, इंप्लिसिट इंटेंट के अनुरोधों के ज़रिए शुरू कर सकते हैं. इससे किसी फ़ोन नंबर पर मैसेज भेजा जा सकता है.
  • ऐप्लिकेशन में ऐसी सेवा है जिसे android.permission.SEND_RESPOND_VIA_MESSAGE अनुमति से कंट्रोल किया जाता है. साथ ही, इसे इंप्लिसिट इंटेंट से शुरू किया जा सकता है. यह सेवा, फ़ोन ऐप्लिकेशन से मिले मैसेज डिलीवर कर सकती है. ऐसा तब होता है, जब उपयोगकर्ता इनकमिंग कॉल के दौरान, मैसेज के ज़रिए जवाब देने का विकल्प चुनता है. यह ऐप्लिकेशन, अपने मैसेजिंग सिस्टम के ज़रिए मैसेज भेज सकता है.
  • ऐप्लिकेशन में दो ब्रॉडकास्ट रिसीवर हैं. इनमें से एक को android.permission.BROADCAST_SMS अनुमति से और दूसरे को android.permission.BROADCAST_WAP_PUSH अनुमति से कंट्रोल किया जाता है. ये रिसीवर, डिवाइस पर भेजे गए टेक्स्ट वाले एसएमएस और मल्टीमीडिया मैसेज (एमएमएस) को सुन सकते हैं. इसके बाद, ऐप्लिकेशन की ज़िम्मेदारी होती है कि वह एसएमएस की सेवा देने वाली कंपनी को मैसेज भेजे और उपयोगकर्ताओं को सूचना दे.
EMERGENCY इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • ऐप्लिकेशन में ऐसी गतिविधि शामिल हो जो उपयोगकर्ता की आपातकालीन जानकारी दिखाती हो. इमरजेंसी डायलर ऐक्टिविटी में मौजूद इमरजेंसी बटन का इस्तेमाल करके, कोई भी व्यक्ति इस स्क्रीन पर जा सकता है.
HOME ऐप्लिकेशन में ऐसी गतिविधि है जो उपयोगकर्ता के होम बटन दबाने पर, होम स्क्रीन को लॉन्च कर सकती है. होम स्क्रीन पर ऐप्लिकेशन के आइकॉन और विजेट दिखने चाहिए. साथ ही, बटन या जेस्चर के आधार पर नेविगेशन की सुविधा होनी चाहिए. उदाहरण के लिए, सभी ऐप्लिकेशन देखने के लिए ऊपर की ओर स्वाइप करना.
CALL_REDIRECTION ऐप्लिकेशन में ऐसी सेवा है जिसे android.permission.BIND_CALL_REDIRECTION_SERVICE अनुमति से कंट्रोल किया जाता है. इससे, टेलीकॉम फ़्रेमवर्क को जोड़ा जा सकता है. सेवा को टेलीकॉम फ़्रेमवर्क से आउटगोइंग फ़ोन नंबर मिलता है. इसके बाद, वह इनमें से कोई एक कार्रवाई करती है:
  • कॉल को सामान्य तरीके से जारी रखें.
  • आउटगोइंग नंबर को प्रॉक्सी नंबर से रूट करने के लिए बदलें.
  • कॉल रद्द करना.
CALL_SCREENING ऐप्लिकेशन में ऐसी सेवा है जिसके लिए android.permission.BIND_SCREENING_SERVICE अनुमति की ज़रूरत होती है. यह सेवा दो काम करती है:
  • कॉल ब्लॉक करना और स्क्रीन करना: सेवा यह चुन सकती है कि कौनसे कॉल, फ़ोन पर मौजूद डायलर ऐप्लिकेशन पर भेजे जाएं. साथ ही, डीएनडी या आवाज़ के हिसाब से रिंग करें. इसके अलावा, यह भी तय किया जा सकता है कि कौनसे कॉल, बिना रिंग किए वॉइसमेल पर भेजे जाएं.
  • कॉल की पहचान करना: यह सेवा, यूज़र इंटरफ़ेस के ज़रिए कॉल की पहचान कर सकती है और उसके बारे में जानकारी दिखा सकती है.
SUPERVISION इनमें से सभी:
  • ऐप्लिकेशन, कोई सिस्टम ऐप्लिकेशन या पहले से इंस्टॉल की गई सेवा हो.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन का मकसद सिर्फ़ यह होना चाहिए कि उपयोगकर्ता के माता-पिता या कानूनी अभिभावक को डिवाइस मैनेज करने के लिए कंट्रोल उपलब्ध कराए जा सकें.
  • ऐप्लिकेशन को डिवाइस पर एक यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट उपलब्ध कराना चाहिए. इसकी मदद से, अनुमति पा चुका उपयोगकर्ता निगरानी की भूमिका को बंद कर सकता है.
SYSTEM_AUTOMOTIVE_CLUSTER इनमें से सभी:
  • यह ऐप्लिकेशन, Automotive पर सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन, ऑटोमोटिव क्लस्टर डिसप्ले (आम तौर पर, स्टीयरिंग व्हील के बगल में) की सुविधा देता है. इससे उपयोगकर्ता, फ़ोन कॉल का जवाब दे सकते हैं. साथ ही, संपर्क सूचियों और कॉल लॉग को ऐक्सेस कर सकते हैं.
COMPANION_DEVICE_WATCH ऐप्लिकेशन, स्मार्टवॉच से जुड़ने और उसे मैनेज करने के लिए अनुरोध कर सकता है. इसके लिए, CompanionDeviceManager क्लास से मिले एपीआई का इस्तेमाल किया जाता है. जब स्मार्टवॉच और ऐप्लिकेशन, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) से कनेक्ट होते हैं, तो उपयोगकर्ता ऐप्लिकेशन से अपनी स्मार्टवॉच को मैनेज कर सकते हैं. इसमें संपर्क और कैलेंडर सिंक करना, सूचनाएं और फ़ोन कॉल मैनेज करना शामिल है.
SYSTEM_AUTOMOTIVE_PROJECTION इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • इस ऐप्लिकेशन की मदद से, फ़ोन की स्क्रीन को वाहन के डिसप्ले पर प्रोजेक्ट किया जा सकता है. इससे ड्राइवर, Android फ़ोन पर मौजूद ऐप्लिकेशन ऐक्सेस और कंट्रोल कर सकते हैं. इनमें संगीत, नेविगेशन, फ़ोन कॉल, और खोज से जुड़े ऐप्लिकेशन शामिल हैं. इसके लिए, वे वाहन में मौजूद इनपुट मैकेनिज़्म का इस्तेमाल कर सकते हैं. जैसे, टच, स्टीयरिंग व्हील कंट्रोल, और बोलकर दिए जाने वाले निर्देश.
SYSTEM_SHELL इनमें से सभी:
  • यह ऐप्लिकेशन एक सिस्टम ऐप्लिकेशन है, जिसे Process.SHELL_UID यूआईडी असाइन किया गया है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन एक ऐसा इंटरफ़ेस उपलब्ध कराता है जो कमांड-लाइन लेवल पर काम करता है, ताकि उपयोगकर्ता Android OS के साथ इंटरैक्ट कर सकें. उदाहरण के लिए, किसी फ़ोल्डर का कॉन्टेंट दिखाना या ऐप्लिकेशन लॉन्च करना. शेल कमांड को ऐप्लिकेशन, प्रोग्राम के हिसाब से चला सकते हैं. इसके लिए, ज़रूरी अनुमतियां दी गई हों. इसके अलावा, एडीबी टूल से भी शेल कमांड चलाए जा सकते हैं.
SYSTEM_CONTACTS इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में एक यूज़र इंटरफ़ेस (यूआई) होता है, ताकि उपयोगकर्ता अपने संपर्कों को मैनेज कर सकें. उदाहरण के लिए, संपर्क देखना, शेयर करना, जोड़ना, हटाना या खोजना. जब उपयोगकर्ता ऐप्लिकेशन से अपने संपर्कों को अपडेट करता है, तो ऐप्लिकेशन, संपर्क सूची को अपडेट करता है. उपयोगकर्ता, ऐप्लिकेशन से अपने संपर्कों को कॉल, ईमेल या मैसेज भी भेज सकते हैं.
SYSTEM_SPEECH_RECOGNIZER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन ऐसी सेवा उपलब्ध कराता है जो बोली को पहचान सकती है.
  • जब ऐप्लिकेशन को बोली पहचानने के लिए, किसी दूसरे ऐप्लिकेशन से लाइव माइक्रोफ़ोन स्ट्रीम मिलती हैं, तो वह माइक्रोफ़ोन के इस्तेमाल का क्रेडिट, कॉलिंग ऐप्लिकेशन को सही तरीके से देता है. साथ ही, ऐप्लिकेशन के इस्तेमाल से जुड़े आंकड़ों को उसी हिसाब से अपडेट करता है.
SYSTEM_WIFI_COEX_MANAGER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में एक ऐसी सेवा है जो डाइनैमिक तरीके से वाई-फ़ाई चैनलों की सूची सेट करती है. सेल्युलर नेटवर्क में रुकावट की वजह से, डिवाइस को इन चैनलों का इस्तेमाल नहीं करना चाहिए.
SYSTEM_WELLBEING इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में ऐसी सुविधाएं होनी चाहिए जिनसे उपयोगकर्ताओं का ध्यान न भटके. साथ ही, उपयोगकर्ताओं को उनके डिवाइस के इस्तेमाल से जुड़े आंकड़े भी मिलने चाहिए. उदाहरण के लिए, हर हफ़्ते स्क्रीन टाइम की जानकारी.
SYSTEM_TELEVISION_NOTIFICATION_HANDLER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन को टीवी डिवाइसों पर, उपयोगकर्ताओं को स्क्रीन पर सबसे ऊपर सूचना देने वाले कार्ड दिखाने चाहिए. जब SystemUI से android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL इंटेंट भेजा जाता है, तब ऐप्लिकेशन को मौजूदा समय में चालू सूचनाएं भी दिखानी चाहिए.
SYSTEM_COMPANION_DEVICE_PROVIDER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन को अपने आस-पास मौजूद सहायक डिवाइसों (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) का पता लगाने में सक्षम होना चाहिए. इसमें एक यूज़र इंटरफ़ेस (यूआई) होना चाहिए, जहां उपयोगकर्ता यह पुष्टि कर सके कि किसी सहायक डिवाइस को किसी ऐप्लिकेशन से जोड़ा जाना चाहिए और उसे मैनेज किया जाना चाहिए. जब उपयोगकर्ता पुष्टि करता है, तो मैनेज करने वाला ऐप्लिकेशन, उससे जुड़े ऐप्लिकेशन को सहायक डिवाइस को ऐक्सेस करने की अनुमति देता है. जैसे, उसका नाम, पता, क्लास, और बॉन्डिंग की स्थिति. इसके बाद, वह बॉन्डिंग की प्रोसेस शुरू कर सकता है.
SYSTEM_DOCUMENT_MANAGER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में ऐसी गतिविधि मौजूद है जिससे उपयोगकर्ता, डिवाइस पर मौजूद दस्तावेज़ों को ऐक्सेस कर सकते हैं और नए दस्तावेज़ बना सकते हैं.
  • ऐप्लिकेशन को Android CDD के सेक्शन 2.2.3 में बताई गई सभी ज़रूरी शर्तें पूरी करनी होंगी. सॉफ़्टवेयर के बारे में जानकारी दी गई है.
SYSTEM_ACTIVITY_RECOGNIZER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • ऐप्लिकेशन में ऐसी सेवा है जिसे android.permission.ACTIVITY_RECOGNITION से कंट्रोल किया जाता है. यह सेवा, गतिविधि की पहचान कर सकती है. जैसे, दौड़ना या साइकल चलाना.
SYSTEM_UI इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में एक ऐसा इंटरफ़ेस है जिससे उपयोगकर्ता अपने फ़ोन से इंटरैक्ट कर सकते हैं. उदाहरण के लिए, फ़ोन की मुख्य स्क्रीन, नेविगेशन, हाल ही में इस्तेमाल किए गए ऐप्लिकेशन, क्विक सेटिंग, सूचना बार, लॉकस्क्रीन, और आवाज़ कंट्रोल करने की सुविधा.
SYSTEM_TELEVISION_REMOTE_SERVICE इनमें से सभी:
  • यह ऐप्लिकेशन, Android TV पर एक सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में ऐसी सेवा है जो टीवी के रिमोट कंट्रोल एचआईडी डिवाइस से कम्यूनिकेट कर सकती है. उदाहरण के लिए, बीएलई के ज़रिए. साथ ही, इवेंट इंजेक्ट कर सकती है. उदाहरण के लिए, बटन क्लिक. इसके अलावा, प्लैटफ़ॉर्म पर अन्य डेटा भेज सकती है. उदाहरण के लिए, रिमोट में पहले से मौजूद माइक्रोफ़ोन से ऑडियो स्ट्रीम.
SYSTEM_UI_INTELLIGENCE इनमें से सभी:
  • यह पहले से इंस्टॉल की गई एक सेवा है, जो फ़्रेमवर्क एपीआई (सार्वजनिक या सिस्टम एपीआई) के ज़रिए, सिस्टम के यूज़र इंटरफ़ेस (यूआई) की सुविधाओं के लिए, डिवाइस पर मौजूद इंटेलिजेंट प्रोसेसर उपलब्ध कराती है. उदाहरण के लिए, उपयोगकर्ताओं के लिए अगले ऐप्लिकेशन का अनुमान लगाना और उन्हें दिखाना.
  • सेवा को Android सीडीडी सेक्शन 9.8.6 कॉन्टेंट कैप्चर में बताई गई सभी ज़रूरी शर्तें पूरी करनी होंगी.
  • सेवा के पास android.permission.INTERNET की अनुमति नहीं हो सकती. इसके बजाय, इसे ओपन सोर्स प्रोजेक्ट में अच्छी तरह से तय किए गए एपीआई के ज़रिए इंटरनेट को ऐक्सेस करना चाहिए.
  • यह सेवा, इन सिस्टम ऐप्लिकेशन के अलावा किसी अन्य ऐप्लिकेशन से बाइंड नहीं हो सकती: ब्लूटूथ, संपर्क, मीडिया, टेलीफ़ोनी, SystemUI, और इंटरनेट एपीआई उपलब्ध कराने वाले कॉम्पोनेंट. अनुमति वाली हर बाइंडिंग को सिस्टम कॉन्फ़िगरेशन में, <allow-association> कॉन्फ़िगरेशन की मदद से साफ़ तौर पर सेट अप किया जाना चाहिए.
  • यह सेवा, ऐप्लिकेशन के साथ तब तक डेटा शेयर नहीं कर सकती, जब तक उपयोगकर्ता सीधे तौर पर कोई कार्रवाई न करे. उदाहरण के लिए, डेटा शेयर होने पर उपयोगकर्ता हर बार साफ़ तौर पर कोई बटन दबाए.
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE इनमें से सभी:
  • SYSTEM_UI_INTELLIGENCE की शर्तों के जैसी ही हैं. हालांकि, पहले से इंस्टॉल की गई सेवा, आस-पास की आवाज़ों के लिए डिवाइस पर मौजूद इंटेलिजेंट प्रोसेसर उपलब्ध कराती है. उदाहरण के लिए, डिवाइस के आस-पास चल रहे गानों की पहचान करना.
SYSTEM_AUDIO_INTELLIGENCE इनमें से सभी:
  • यह SYSTEM_UI_INTELLIGENCE की शर्तों के जैसी ही है. हालांकि, पहले से इंस्टॉल की गई सेवा, ऑडियो के लिए डिवाइस पर इंटेलिजेंट प्रोसेसर उपलब्ध कराती है. उदाहरण के लिए, वीडियो, पॉडकास्ट, फ़ोन कॉल, वीडियो कॉल, और ऑडियो मैसेज के लिए कैप्शन की सुविधा.
SYSTEM_NOTIFICATION_INTELLIGENCE इनमें से सभी:
  • यह SYSTEM_UI_INTELLIGENCE की शर्तों के जैसी ही है. हालांकि, पहले से इंस्टॉल की गई सेवा, सूचनाओं के लिए डिवाइस पर मौजूद इंटेलिजेंट प्रोसेसर उपलब्ध कराती है. उदाहरण के लिए, मैसेज की सूचनाओं के लिए जवाब और कार्रवाइयों के सुझाव देना.
SYSTEM_TEXT_INTELLIGENCE इनमें से सभी:
  • यह SYSTEM_UI_INTELLIGENCE की शर्तों के जैसी ही है. हालांकि, पहले से इंस्टॉल की गई सेवा, टेक्स्ट के लिए डिवाइस पर मौजूद इंटेलिजेंट प्रोसेसर उपलब्ध कराती है. उदाहरण के लिए, लाइव ट्रांसलेशन या ऑटोमैटिक भरने की सुविधा.
SYSTEM_VISUAL_INTELLIGENCE इनमें से सभी:
  • यह SYSTEM_UI_INTELLIGENCE की शर्तों के जैसी ही है. हालांकि, पहले से इंस्टॉल की गई सेवा, विज़ुअल सुविधाओं के लिए डिवाइस पर मौजूद इंटेलिजेंट प्रोसेसर उपलब्ध कराती है. इसमें कैमरे के डेटा का विश्लेषण करना शामिल है. उदाहरण के लिए, जब उपयोगकर्ता फ़ोन की स्क्रीन को देख रहा हो, तब स्क्रीन को चालू रखना या डिवाइस के सामने वाले कैमरे से उपयोगकर्ता के चेहरे के ओरिएंटेशन के आधार पर, स्क्रीन का सही ओरिएंटेशन तय करना.
COMPANION_DEVICE_APP_STREAMING इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • इस्तेमाल के वे मामले जिनके लिए अनुमति है:
    • ऐप्लिकेशन की स्ट्रीमिंग, कास्टिंग या मिररिंग. इससे Android डिवाइस, जैसे कि मोबाइल फ़ोन या टैबलेट से डेस्कटॉप या लैपटॉप कंप्यूटर पर स्ट्रीमिंग, कास्टिंग या मिररिंग की जा सकती है.
  • डिवाइस A से डिवाइस B को पहली बार कनेक्ट करते समय:
    • डिवाइसों को जोड़ने के लिए, सोर्स डिवाइस (A) पर दिखने वाले एक बार इस्तेमाल होने वाले कोड को कनेक्ट किए गए डिवाइस (B) पर डालना ज़रूरी है. इसके अलावा, अगर दोनों डिवाइसों के Android AccountManager में कम से कम एक खाता मैच होता है, तो उपयोगकर्ता कनेक्ट किए गए डिवाइस (B) पर खाते का पासवर्ड डालकर, डिवाइसों को जोड़ने की पुष्टि कर सकता है.
    • दोनों डिवाइसों को एक-दूसरे से जोड़ते समय, उन्हें एक-दूसरे के नज़दीक 1 रखना ज़रूरी है.
  • स्ट्रीमिंग के दौरान, दोनों डिवाइसों को एक-दूसरे के आस-पास 1 होना चाहिए.
  • यह ऐप्लिकेशन, कनेक्ट किए गए डिवाइसों के साथ कम्यूनिकेशन चैनल बना सकता है और उन्हें मैनेज कर सकता है, ताकि डिवाइसों के बीच डेटा शेयर किया जा सके. यह ज़रूरी है कि ऐप्लिकेशन और कनेक्ट किए गए डिवाइस, एक-दूसरे की पुष्टि करें. उदाहरण के लिए, शेयर की गई कुंजियों की जानकारी देकर, इन कम्यूनिकेशन चैनलों को सेट अप किया जा सकता है. कम्यूनिकेशन चैनल में एंड-टू-एंड एन्क्रिप्शन की सुविधा होनी चाहिए.
  • ऐप्लिकेशन, सोर्स डिवाइस (A) से कनेक्ट किए गए डिवाइस (B) पर सूचनाएं भेज सकता है. इससे उपयोगकर्ता, कनेक्ट किए गए डिवाइस (B) पर सूचनाओं के हिसाब से कार्रवाई कर सकता है.
  • कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीमिंग के लिए ज़रूरी मेटाडेटा को स्ट्रीम कर सके. जैसे, सोर्स डिवाइस (A) पर उपलब्ध ऐप्लिकेशन की सूची.
  • उपयोगकर्ता की साफ़ तौर पर सहमति मिलने के बाद, सोर्स डिवाइस (A) से कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीम किए जा सकते हों. यह सहमति, सोर्स डिवाइस (A) या कनेक्ट किए गए डिवाइस (B) पर दी जा सकती है.
  • कनेक्ट किए गए डिवाइस (B) पर स्ट्रीम किए गए ऐप्लिकेशन में होने वाले इवेंट को सोर्स डिवाइस (A) पर फिर से चलाया जा सकता है. उदाहरण के लिए, कनेक्ट किए गए डिवाइस (B) पर टच इवेंट को उसी कोऑर्डिनेट पर फिर से चलाना जिस पर सोर्स डिवाइस (A) पर चलाया गया था. इसके अलावा, कनेक्ट किए गए डिवाइस (B) पर हुए इनपुट इवेंट को उसी इनपुट सिमैंटिक के साथ फिर से चलाना जिस पर सोर्स डिवाइस (A) पर चलाया गया था.
  • जब स्ट्रीमिंग ऐप्लिकेशन माइक्रोफ़ोन का इस्तेमाल कर रहा हो, तब यह ऐप्लिकेशन सोर्स डिवाइस के माइक्रोफ़ोन की स्ट्रीम को कनेक्ट किए गए डिवाइस के माइक्रोफ़ोन की स्ट्रीम से बदल सकता है.
  • ऐप्लिकेशन, सोर्स डिवाइस (A) से ऑडियो कैप्चर करता है और उसे कनेक्ट किए गए डिवाइस (B) पर स्ट्रीम करता है.
  • हमारा सुझाव है कि कनेक्ट किए गए डिवाइस (B) से, सेटिंग ऐप्लिकेशन और ऐप स्टोर का ऐक्सेस ब्लॉक करें.
  • Android 16 और इसके बाद के वर्शन में, कनेक्ट किए गए डिवाइस (B) पर संवेदनशील कॉन्टेंट का स्क्रीनशॉट लेने और स्क्रीन रीडर की सुविधा को रोकना ज़रूरी है. जैसे, सुरक्षित विंडो और सरफ़ेस.
  • कनेक्ट किए गए डिवाइस के ओएस बिल्ड की इंटिग्रिटी की पुष्टि करनी होगी. उदाहरण के लिए, VerifiedBootState में बताए गए तरीके से डिवाइस की पुष्टि करके.
  • सिर्फ़ ऐसे स्ट्रीमिंग ऐप्लिकेशन स्ट्रीम करें जिनके लिए, दोनों डिवाइसों की उपयोगकर्ता के डिवाइस पर खाता रजिस्ट्री में सिर्फ़ एक खाता मैच हो रहा हो. उदाहरण के लिए, Android पर AccountManager क्लास. अगर ऐसा नहीं है, तो सोर्स डिवाइस (A) पर दिखने वाले और कनेक्ट किए गए डिवाइस (B) पर डाले गए, एक बार इस्तेमाल होने वाले कोड की मदद से स्ट्रीमिंग की अनुमति दी जानी चाहिए. ध्यान दें कि एक से ज़्यादा उपयोगकर्ताओं (एक से ज़्यादा खातों के लिए नहीं) के लिए काम करने वाले डिवाइसों के मामले में, एक उपयोगकर्ता को एक डिवाइस के तौर पर गिना जाता है. इन डिवाइसों में, Android के डिवाइस के एक से ज़्यादा उपयोगकर्ता की तरह ही, डेटा को अलग-अलग रखने की सुविधा होती है.
  • अगर कनेक्ट किए गए डिवाइस (B) पर खाते की पुष्टि की समयसीमा खत्म हो जाती है या उसे रद्द कर दिया जाता है, तो कनेक्ट किए गए डिवाइस (B) से स्ट्रीमिंग को तुरंत बंद करना और डिसकनेक्ट करना ज़रूरी है.
  • कनेक्ट किए गए डिवाइस (B) पर, डिसप्ले कॉन्टेंट दिखने के दौरान, अगर डिवाइस (B) कुछ समय तक इस्तेमाल नहीं किया जाता है, तो स्ट्रीमिंग बंद करनी होगी और कनेक्ट किए गए डिवाइस (B) से डिसकनेक्ट करना होगा. कनेक्ट किए गए डिवाइस की स्क्रीन को चालू रखा जा सकता है. ऐसा WakeLock जैसे मामलों में किया जा सकता है, जो Android डिवाइस की स्क्रीन को चालू रखते हैं. कोई गतिविधि न होने पर, टाइम आउट की सुविधा ज़रूर होनी चाहिए. अगर कनेक्ट किए गए डिवाइस (B) में, कुछ समय से इस्तेमाल में न होने पर अपने-आप बंद होने की सुविधा नहीं है, तो कुछ समय से इस्तेमाल में न होने पर अपने-आप बंद होने की सुविधा का इस्तेमाल ज़्यादा से ज़्यादा पांच मिनट के लिए किया जाना चाहिए.
  • अगर सोर्स डिवाइस (A) में लॉकस्क्रीन नॉलेज फ़ैक्टर (एलएसकेएफ़) का इस्तेमाल किया जाता है, तो स्क्रीन लॉक होने पर ऐप्लिकेशन को कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीम नहीं करने चाहिए. ऐसा तब तक नहीं करना चाहिए, जब तक कनेक्ट किए गए डिवाइस (B) में लॉक स्क्रीन न हो और वह अनलॉक न हो.
  • अगर सोर्स डिवाइस (A) को कोई एडमिन मैनेज करता है, तो ऐप्लिकेशन को एडमिन की सेट की गई नीतियों का पालन करना होगा. ये नीतियां, आस-पास मौजूद डिवाइसों पर स्ट्रीमिंग की सुविधा को चालू या बंद करने के बारे में होती हैं. उदाहरण के लिए, Android में DevicePolicyManager सेटिंग का इस्तेमाल करना.
  • यह पक्का करना ज़रूरी है कि रिमोट डिसप्ले और रिमोट इनपुट इवेंट के सभी सोर्स, उपयोगकर्ता के हिसाब से एक ही लॉजिकल डिवाइस से जुड़े हों. जैसे, रिमोट डिसप्ले और कनेक्ट किया गया कीबोर्ड. साथ ही, इवेंट उसी हिसाब से रूट किए जाएं.
  • उपयोगकर्ता के पास सोर्स डिवाइस (A) से स्ट्रीमिंग को खत्म करने का विकल्प होना चाहिए. उदाहरण के लिए, लगातार दिखने वाली सूचना में मौजूद बटन का इस्तेमाल करके. अगर सोर्स डिवाइस (A) में स्क्रीन लॉक सेट है, तो इस सुविधा को लॉकस्क्रीन से कंट्रोल किया जाता है. सोर्स डिवाइस (A) पर, यह स्थायी अफ़ोर्डेंस दिखाना ज़रूरी है. यह हमेशा दिखना चाहिए और बिना स्क्रोल किए दिखने वाले हिस्से के ऊपर होना चाहिए.
  • जब किसी दूसरे डिवाइस पर स्ट्रीमिंग हो रही हो, तो सोर्स डिवाइस (A) पर एक अफ़ोर्डेंस दिखाना ज़रूरी है. जैसे, स्टेटस बार में कोई आइकॉन या लगातार दिखने वाली सूचना.
DEVICE_POLICY_MANAGEMENT इनमें से सभी:
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं. ऐप्लिकेशन इस भूमिका के लिए अनुरोध नहीं कर सकते, क्योंकि यह भूमिका डिवाइस शिप किए जाने के समय, ओईएम की ओर से तय किए गए पैकेज के नाम को दी जाती है.
  • ऐप्लिकेशन में, मैनेज की जा रही प्रोफ़ाइल (प्रोफ़ाइल का मालिक) या मैनेज किए जा रहे डिवाइस (डिवाइस का मालिक) को सेट अप करने की सुविधा होनी चाहिए. इसमें, डिवाइस/प्रोफ़ाइल का मालिक बनने के लिए, ज़रूरत पड़ने पर सही डिवाइस से जुड़ी नीति क्लाइंट को डाउनलोड और इंस्टॉल करना शामिल है.
  • ऐप्लिकेशन, डिवाइस से जुड़ी नीति को मैनेज करने के लिए इस्तेमाल की जाने वाली स्ट्रिंग, ड्रॉएबल जैसे संसाधनों को डाइनैमिक तरीके से अपडेट कर सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
  • यह ऐप्लिकेशन, पहले से इंस्टॉल किया गया सिस्टम ऐप्लिकेशन हो सकता है. इसके अलावा, इसे प्रोविज़निंग से पहले डाउनलोड और इंस्टॉल किया जा सकता है.
  • प्रोफ़ाइल के मालिक के लिए, ऐप्लिकेशन को उपलब्ध कराने के मामलों में, जब रोल होल्डर ऐप्लिकेशन को किसी Android उपयोगकर्ता के लिए इंस्टॉल किया जाता है, तो उसे उस उपयोगकर्ता की सभी लागू होने वाली प्रोफ़ाइलों पर इंस्टॉल करना ज़रूरी है.
SYSTEM_APP_PROTECTION_SERVICE इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • ऐप्लिकेशन का मकसद सिर्फ़ नुकसान पहुंचा सकने वाले ऐप्लिकेशन का पता लगाना हो. ये ऐसे ऐप्लिकेशन होते हैं जो उपयोगकर्ताओं, उनके डेटा या डिवाइसों को खतरे में डाल सकते हैं. जैसे, ट्रोजन, फ़िशिंग, और स्पायवेयर ऐप्लिकेशन या मोबाइल के अनचाहे सॉफ़्टवेयर.
  • ऐप्लिकेशन को Android सीडीडी के सेक्शन 9.8.6 में बताई गई सभी ज़रूरी शर्तें पूरी करनी होंगी. ओएस-लेवल और ऐंबियंट डेटा.
  • ऐप्लिकेशन में android.permission.INTERNET सामान्य अनुमति का एलान नहीं किया जाना चाहिए. इसके बजाय, इसे ओपन सोर्स प्रोजेक्ट में अच्छी तरह से तय किए गए एपीआई के ज़रिए इंटरनेट को ऐक्सेस करना चाहिए.
  • ऐप्लिकेशन को इन सिस्टम ऐप्लिकेशन के अलावा, किसी अन्य ऐप्लिकेशन से नहीं जोड़ा जाना चाहिए: अनुमति कंट्रोलर और टेलीफ़ोनी और इंटरनेट एपीआई उपलब्ध कराने वाले कॉम्पोनेंट. अनुमति वाली हर बाइंडिंग को सिस्टम कॉन्फ़िगरेशन में <allow-association> कॉन्फ़िगरेशन की मदद से साफ़ तौर पर सेट अप किया जाना चाहिए.
  • ऐप्लिकेशन को तब तक अन्य ऐप्लिकेशन के साथ डेटा शेयर नहीं करना चाहिए, जब तक उपयोगकर्ता इसके लिए कोई कार्रवाई न करे. उदाहरण के लिए, डेटा शेयर करने के लिए, उपयोगकर्ता को हर बार साफ़ तौर पर कोई बटन दबाना पड़े.
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन को उपयोगकर्ता के iOS या Android फ़ोन से Android Auto डिवाइस पर कैलेंडर डेटा ट्रांसफ़र करना होगा. Android Auto डिवाइस को कैलेंडर का यह डेटा, कैलेंडर की सेवा देने वाली कंपनी के पास सेव करना होगा.
  • ऐप्लिकेशन को फ़ोन पर एक यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट उपलब्ध कराना चाहिए. इसका इस्तेमाल करके, उपयोगकर्ता कैलेंडर सिंक करने की सुविधा चालू कर सकता है और सिंक करने के लिए कैलेंडर चुन सकता है. ऐप्लिकेशन को फ़ोन पर एक यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट उपलब्ध कराना होगा. इसका इस्तेमाल करके, उपयोगकर्ता कैलेंडर सिंक करने की सुविधा को बंद कर सकता है.
  • ऐप्लिकेशन को इंटरनेट कनेक्शन के बिना काम करना चाहिए. उदाहरण के लिए, डायरेक्ट वायर या वायरलेस कनेक्शन का इस्तेमाल करके.
AUTOMOTIVE_NAVIGATION इनमें से सभी:
  • ऐप्लिकेशन में ऐसी गतिविधि है जिसे ऐप्लिकेशन, इंप्लिसिट इंटेंट के अनुरोधों के ज़रिए शुरू कर सकते हैं. इससे उपयोगकर्ता की मौजूदा जगह की जानकारी और आस-पास की जगहें दिखती हैं.
  • ऐप्लिकेशन में ऐसी गतिविधि है जिसे ऐप्लिकेशन, इंप्लिसिट इंटेंट के अनुरोधों के ज़रिए शुरू कर सकते हैं. इससे उपयोगकर्ता, किसी खास जगह पर जा सकता है.
  • ऐप्लिकेशन में ऐसी गतिविधि है जो इंस्ट्रुमेंट क्लस्टर पर तब लॉन्च होती है, जब ऐप्लिकेशन के पास नेविगेशन फ़ोकस होता है. गतिविधि में उपयोगकर्ता की मौजूदा जगह की जानकारी और आस-पास की जगहें दिखनी चाहिए. साथ ही, उपयोगकर्ता को किसी खास जगह पर जाने की सुविधा मिलनी चाहिए.
COMPANION_DEVICE_COMPUTER इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • उपयोगकर्ताओं को कनेक्ट किए गए कंप्यूटर पर, फ़ोन से सूचनाएं मिरर करने और फ़ोटो और मीडिया ऐक्सेस करने की सुविधा दें.
SYSTEM_SETTINGS_INTELLIGENCE इनमें से कम से कम एक:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • इसमें ऐसी सेवा है जो सेटिंग ऐप्लिकेशन के लिए, इंटेलिजेंस सुविधाएं उपलब्ध कराती है. जैसे, सुझाव और खोज.
NOTES इनमें से सभी:
  • ऐप्लिकेशन में ऐसी गतिविधि मौजूद है जिसे अन्य ऐप्लिकेशन, इंप्लिसिट इंटेंट के अनुरोधों के ज़रिए शुरू कर सकते हैं. इस गतिविधि की मदद से, उपयोगकर्ता नोट बना सकता है. भले ही, स्क्रीन लॉक हो या अनलॉक.
  • ऐप्लिकेशन में ऐसी गतिविधि होनी चाहिए जिसमें android.intent.category.DEFAULT कैटगरी के साथ android.intent.action.CREATE_NOTE के लिए इंटेंट फ़िल्टर हो. गतिविधि को इंटेंट एक्स्ट्रा android.intent.extra.USE_STYLUS_MODE को भी सही तरीके से मैनेज करना चाहिए.
  • ऐप्लिकेशन में, मेनिफ़ेस्ट एट्रिब्यूट showWhenLocked और turnScreenOn, दोनों को true पर सेट करना ज़रूरी है.
COMPANION_DEVICE_GLASSES ऐप्लिकेशन, स्मार्ट ग्लास डिवाइस से जुड़ने और उसे मैनेज करने के लिए अनुरोध कर सकता है. इसके लिए, उसे CompanionDeviceManager क्लास से मिले एपीआई का इस्तेमाल करना होगा. जब स्मार्ट ग्लास और ऐप्लिकेशन को सीडीएम के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके कनेक्ट किया जाता है, तो उपयोगकर्ता अपने स्मार्ट ग्लास को मैनेज कर सकते हैं. इसके लिए, उन्हें स्मार्ट ग्लास को संपर्कों का ऐक्सेस देना होगा. साथ ही, सूचनाओं और फ़ोन कॉल को मैनेज करने की अनुमति देनी होगी.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING इनमें से सभी:
  • ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • इस्तेमाल के वे मामले जिनके लिए अनुमति है:
    • Android डिवाइस, जैसे कि मोबाइल फ़ोन या टैबलेट से वाहन में ऐप्लिकेशन स्ट्रीम करना.
    • Android फ़ोन या टैबलेट जैसे किसी डिवाइस से, एक्सआर डिवाइस पर ऐप्लिकेशन स्ट्रीम करना.
  • डिवाइस A से डिवाइस B को पहली बार कनेक्ट करते समय:
    • डिवाइसों को जोड़ने के लिए, सोर्स डिवाइस (A) पर दिखने वाले एक बार इस्तेमाल होने वाले कोड को कनेक्ट किए गए डिवाइस (B) पर डालना ज़रूरी है. इसके अलावा, अगर दोनों डिवाइसों के Android AccountManager में कम से कम एक खाता मैच होता है, तो उपयोगकर्ता कनेक्ट किए गए डिवाइस (B) पर खाते का पासवर्ड डालकर, डिवाइसों को जोड़ने की पुष्टि कर सकता है.
    • दोनों डिवाइसों को एक-दूसरे से जोड़ते समय, उन्हें एक-दूसरे के नज़दीक 1 रखना ज़रूरी है.
  • स्ट्रीमिंग के दौरान, दोनों डिवाइसों को एक-दूसरे के आस-पास 1 होना चाहिए.
  • यह ऐप्लिकेशन, कनेक्ट किए गए डिवाइसों के साथ कम्यूनिकेशन चैनल बना सकता है और उन्हें मैनेज कर सकता है, ताकि डिवाइसों के बीच डेटा शेयर किया जा सके. यह ज़रूरी है कि ऐप्लिकेशन और कनेक्ट किए गए डिवाइस, एक-दूसरे की पुष्टि करें. उदाहरण के लिए, शेयर की गई कुंजियों की जानकारी देकर, इन कम्यूनिकेशन चैनलों को सेट अप किया जा सकता है. कम्यूनिकेशन चैनल में एंड-टू-एंड एन्क्रिप्शन की सुविधा होनी चाहिए.
  • ऐप्लिकेशन, सोर्स डिवाइस (A) से कनेक्ट किए गए डिवाइस (B) पर सूचनाएं भेज सकता है. इससे उपयोगकर्ता, कनेक्ट किए गए डिवाइस (B) पर सूचनाओं के हिसाब से कार्रवाई कर सकता है.
  • कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीमिंग के लिए ज़रूरी मेटाडेटा को स्ट्रीम कर सके. जैसे, सोर्स डिवाइस (A) पर उपलब्ध ऐप्लिकेशन की सूची.
  • उपयोगकर्ता की साफ़ तौर पर सहमति मिलने के बाद, सोर्स डिवाइस (A) से कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीम किए जा सकते हों. यह सहमति, सोर्स डिवाइस (A) या कनेक्ट किए गए डिवाइस (B) पर दी जा सकती है.
  • कनेक्ट किए गए डिवाइस (B) पर स्ट्रीम किए गए ऐप्लिकेशन में होने वाले इवेंट को सोर्स डिवाइस (A) पर फिर से चलाया जा सकता है. उदाहरण के लिए, कनेक्ट किए गए डिवाइस (B) पर टच इवेंट को उसी कोऑर्डिनेट पर फिर से चलाना जिस पर सोर्स डिवाइस (A) पर चलाया गया था. इसके अलावा, कनेक्ट किए गए डिवाइस (B) पर हुए इनपुट इवेंट को उसी इनपुट सिमैंटिक के साथ फिर से चलाना जिस पर सोर्स डिवाइस (A) पर चलाया गया था.
  • जब स्ट्रीमिंग ऐप्लिकेशन माइक्रोफ़ोन का इस्तेमाल कर रहा हो, तब यह ऐप्लिकेशन सोर्स डिवाइस के माइक्रोफ़ोन की स्ट्रीम को कनेक्ट किए गए डिवाइस के माइक्रोफ़ोन की स्ट्रीम से बदल सकता है.
  • ऐप्लिकेशन, सोर्स डिवाइस (A) से ऑडियो कैप्चर करता है और उसे कनेक्ट किए गए डिवाइस (B) पर स्ट्रीम करता है.
  • हमारा सुझाव है कि कनेक्ट किए गए डिवाइस (B) से, सेटिंग ऐप्लिकेशन और ऐप स्टोर का ऐक्सेस ब्लॉक करें.
  • Android 16 से, कनेक्ट किए गए डिवाइस (B) पर संवेदनशील कॉन्टेंट का स्क्रीनशॉट लेने और स्क्रीन रीडर की सुविधा को रोकना ज़रूरी है. जैसे, सुरक्षित विंडो और सरफ़ेस.
  • कनेक्ट किए गए डिवाइस के ओएस बिल्ड की इंटिग्रिटी की पुष्टि करनी होगी. उदाहरण के लिए, VerifiedBootState में बताए गए तरीके से डिवाइस की पुष्टि करके.
  • सिर्फ़ ऐसे स्ट्रीमिंग ऐप्लिकेशन स्ट्रीम करें जिनके लिए, दोनों डिवाइसों की उपयोगकर्ता के डिवाइस पर खाता रजिस्ट्री में सिर्फ़ एक खाता मैच हो रहा हो. उदाहरण के लिए, Android पर AccountManager क्लास. अगर ऐसा नहीं है, तो सोर्स डिवाइस (A) पर दिखने वाले और कनेक्ट किए गए डिवाइस (B) पर डाले गए, एक बार इस्तेमाल होने वाले कोड की मदद से स्ट्रीमिंग की अनुमति दी जानी चाहिए. ध्यान दें कि एक से ज़्यादा उपयोगकर्ताओं (एक से ज़्यादा खातों के लिए नहीं) के लिए काम करने वाले डिवाइसों के मामले में, एक उपयोगकर्ता को एक डिवाइस के तौर पर गिना जाता है. इन डिवाइसों में, Android के डिवाइस के एक से ज़्यादा उपयोगकर्ता की तरह ही, डेटा को अलग-अलग रखने की सुविधा होती है.
  • अगर कनेक्ट किए गए डिवाइस (B) पर खाते की पुष्टि की समयसीमा खत्म हो जाती है या उसे रद्द कर दिया जाता है, तो कनेक्ट किए गए डिवाइस (B) से स्ट्रीमिंग को तुरंत बंद करना और डिसकनेक्ट करना ज़रूरी है.
  • कनेक्ट किए गए डिवाइस (B) पर, डिसप्ले कॉन्टेंट दिखने के दौरान, अगर डिवाइस (B) कुछ समय तक इस्तेमाल नहीं किया जाता है, तो स्ट्रीमिंग बंद करनी होगी और कनेक्ट किए गए डिवाइस (B) से डिसकनेक्ट करना होगा. कनेक्ट किए गए डिवाइस की स्क्रीन को चालू रखा जा सकता है. ऐसा WakeLock जैसे मामलों में किया जा सकता है, जो Android डिवाइस की स्क्रीन को चालू रखते हैं. कोई गतिविधि न होने पर, टाइम आउट की सुविधा ज़रूर होनी चाहिए. अगर कनेक्ट किए गए डिवाइस (B) में, कुछ समय से इस्तेमाल में न होने पर अपने-आप बंद होने की सुविधा नहीं है, तो कुछ समय से इस्तेमाल में न होने पर अपने-आप बंद होने की सुविधा का इस्तेमाल ज़्यादा से ज़्यादा पांच मिनट के लिए किया जाना चाहिए.
  • अगर सोर्स डिवाइस (A) में लॉकस्क्रीन नॉलेज फ़ैक्टर (एलएसकेएफ़) का इस्तेमाल किया जाता है, तो स्क्रीन लॉक होने पर ऐप्लिकेशन को कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीम नहीं करने चाहिए. ऐसा तब तक नहीं करना चाहिए, जब तक कनेक्ट किए गए डिवाइस (B) में लॉक स्क्रीन न हो और वह अनलॉक न हो.
  • अगर सोर्स डिवाइस (A) को कोई एडमिन मैनेज करता है, तो ऐप्लिकेशन को एडमिन की सेट की गई नीतियों का पालन करना होगा. ये नीतियां, आस-पास मौजूद डिवाइसों पर स्ट्रीमिंग की सुविधा को चालू या बंद करने के बारे में होती हैं. उदाहरण के लिए, Android में DevicePolicyManager सेटिंग का इस्तेमाल करना.
  • यह पक्का करना ज़रूरी है कि रिमोट डिसप्ले और रिमोट इनपुट इवेंट के सभी सोर्स, उपयोगकर्ता के हिसाब से एक ही लॉजिकल डिवाइस से जुड़े हों. जैसे, रिमोट डिसप्ले और कनेक्ट किया गया कीबोर्ड. साथ ही, इवेंट उसी हिसाब से रूट किए जाएं.
  • उपयोगकर्ता के पास सोर्स डिवाइस (A) से स्ट्रीमिंग को खत्म करने का विकल्प होना चाहिए. उदाहरण के लिए, लगातार दिखने वाली सूचना में मौजूद बटन का इस्तेमाल करके. अगर सोर्स डिवाइस (A) में स्क्रीन लॉक सेट है, तो इस सुविधा को लॉकस्क्रीन से कंट्रोल किया जाता है. सोर्स डिवाइस (A) पर, यह स्थायी अफ़ोर्डेंस दिखाना ज़रूरी है. यह हमेशा दिखना चाहिए और बिना स्क्रोल किए दिखने वाले हिस्से के ऊपर होना चाहिए.
  • जब किसी दूसरे डिवाइस पर स्ट्रीमिंग हो रही हो, तो सोर्स डिवाइस (A) पर एक अफ़ोर्डेंस दिखाना ज़रूरी है. जैसे, स्टेटस बार में कोई आइकॉन या लगातार दिखने वाली सूचना.
WALLET इनमें से एक:
  • ऐप्लिकेशन में एनएफ़सी एपीडीयू सेवा है, जो PAYMENT कैटगरी में कम से कम एक एआईडी को स्टैटिक तौर पर रजिस्टर करती है.
  • ऐप्लिकेशन, QuickAccessWalletService का एक इंस्टेंस लागू करता है.

1 डिवाइसों के आस-पास होने का मतलब है कि वे एक-दूसरे के ब्लूटूथ या वाई-फ़ाई की रेंज में हों या एक ही लोकल नेटवर्क का इस्तेमाल कर रहे हों.