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 अनुमति से जुड़ी एक सेवा है. यह दो काम करती है:
  • कॉल ब्लॉक करने और स्क्रीन करने की सुविधा: यह सेवा यह तय कर सकती है कि फ़ोन पर डायलर ऐप्लिकेशन को कौनसे कॉल भेजे जाएं. साथ ही, यह भी तय कर सकती है कि कौनसे कॉल को वॉइसमेल पर भेजा जाए. यह सेवा, कॉल को रिंग करने या न करने का फ़ैसला भी कर सकती है. ऐसा, 'डू नॉट डिस्टर्ब' मोड या वॉल्यूम के आधार पर किया जाता है.
  • कॉल की पहचान करना: यह सेवा, यूज़र इंटरफ़ेस के ज़रिए कॉल की पहचान कर सकती है और उसके बारे में जानकारी दिखा सकती है.
SYSTEM_GALLERY इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • यह ऐप्लिकेशन, उपयोगकर्ताओं को वीडियो और इमेज सेव करने, उन्हें व्यवस्थित करने, और दिखाने के लिए यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है.
SYSTEM_AUTOMOTIVE_CLUSTER इन सभी के लिए:
  • यह ऐप्लिकेशन, Automotive पर सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • यह ऐप्लिकेशन, उपयोगकर्ताओं को ऑटोमोटिव क्लस्टर डिसप्ले (आम तौर पर, स्टीयरिंग व्हील के बगल में) पर फ़ोन कॉल का जवाब देने, संपर्क सूची ऐक्सेस करने, और कॉल लॉग देखने की सुविधा देता है.
COMPANION_DEVICE_WATCH यह ऐप्लिकेशन, घड़ी वाले डिवाइस से जुड़ने और उसे मैनेज करने के लिए अनुरोध कर सकता है. इसके लिए, CompanionDeviceManager क्लास से मिले एपीआई का इस्तेमाल किया जाता है. जब स्मार्टवॉच और ऐप्लिकेशन, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के ज़रिए कनेक्ट होते हैं, तब लोग ऐप्लिकेशन से अपनी स्मार्टवॉच को मैनेज कर सकते हैं. इसमें संपर्कों और कैलेंडर को सिंक करना, सूचनाएं और फ़ोन कॉल मैनेज करना शामिल है.
SYSTEM_AUTOMOTIVE_PROJECTION इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • यह ऐप्लिकेशन, फ़ोन की स्क्रीन को वाहन में लगे डिसप्ले पर प्रोजेक्ट करता है. इससे ड्राइवर, Android फ़ोन पर मौजूद ऐप्लिकेशन को ऐक्सेस और कंट्रोल कर पाते हैं. जैसे, संगीत, नेविगेशन, फ़ोन कॉल, और खोज. इसके लिए, वे वाहन में मौजूद इनपुट मैकेनिज़्म का इस्तेमाल करते हैं: टच, स्टीयरिंग व्हील के कंट्रोल, और बोलकर दिए जाने वाले निर्देश.
SYSTEM_SHELL इन सभी के लिए:
  • यह एक सिस्टम ऐप्लिकेशन है. इसे Process.SHELL_UID यूआईडी असाइन किया गया है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • यह ऐप्लिकेशन, कमांड-लाइन लेवल पर काम करने वाला इंटरफ़ेस उपलब्ध कराता है. इससे उपयोगकर्ता, Android OS के साथ इंटरैक्ट कर सकते हैं. उदाहरण के लिए, किसी फ़ोल्डर का कॉन्टेंट दिखाना या ऐप्लिकेशन लॉन्च करना. शेल कमांड को, ऐप्लिकेशन की मदद से प्रोग्राम के हिसाब से लागू किया जा सकता है. इसके लिए, ज़रूरी अनुमतियां दी जानी चाहिए. इसके अलावा, ADB टूल से भी शेल कमांड लागू की जा सकती हैं.
SYSTEM_CONTACTS इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन, उपयोगकर्ताओं को अपने संपर्कों को मैनेज करने के लिए यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है. उदाहरण के लिए, किसी संपर्क को देखना, शेयर करना, जोड़ना, हटाना या खोजना. जब उपयोगकर्ता ऐप्लिकेशन से अपने संपर्क अपडेट करता है, तब ऐप्लिकेशन, संपर्क की जानकारी देने वाली सेवा को अपडेट करता है. उपयोगकर्ता, ऐप्लिकेशन से अपने संपर्कों को कॉल, ईमेल या मैसेज भी भेज सकते हैं.
SYSTEM_SPEECH_RECOGNIZER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • यह ऐप्लिकेशन, बोली पहचानने की सुविधा देता है.
  • जब ऐप्लिकेशन को, आवाज़ की पहचान करने के लिए किसी दूसरे ऐप्लिकेशन से लाइव माइक्रोफ़ोन स्ट्रीम मिलती हैं, तो वह माइक्रोफ़ोन के इस्तेमाल का सही श्रेय कॉलिंग ऐप्लिकेशन को देता है. साथ ही, ऐप्लिकेशन के काम करने से जुड़े आंकड़ों को अपडेट करता है.
SYSTEM_WIFI_COEX_MANAGER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में एक ऐसी सेवा है जो वाई-फ़ाई चैनलों की सूची को डाइनैमिक तरीके से सेट करती है. इस सूची में वे चैनल शामिल होते हैं जिन्हें डिवाइस को इस्तेमाल करने से बचना चाहिए, क्योंकि सेल्यूलर इंटरफ़ेरेंस की वजह से ऐसा करना ज़रूरी होता है.
SYSTEM_WELLBEING इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में ऐसी सुविधाएं होनी चाहिए जिनकी मदद से उपयोगकर्ता, ध्यान भटकाने वाली चीज़ों को कम कर सकें. साथ ही, उन्हें यह जानकारी मिल सके कि वे अपने डिवाइस का इस्तेमाल कैसे करते हैं. उदाहरण के लिए, वे हर हफ़्ते स्क्रीन पर कितना समय बिताते हैं.
SYSTEM_TELEVISION_NOTIFICATION_HANDLER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन को टीवी डिवाइसों पर उपयोगकर्ताओं को हेड्स-अप सूचनाएं दिखानी होंगी. जब android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL इंटेंट (SystemUI से) भेजा जाता है, तब ऐप्लिकेशन को चालू सूचनाएं भी दिखानी चाहिए.
SYSTEM_COMPANION_DEVICE_PROVIDER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन को अपने आस-पास मौजूद सहायक डिवाइसों का पता लगाने की सुविधा देनी होगी. इसमें एक यूज़र इंटरफ़ेस (यूआई) होना चाहिए, जहां उपयोगकर्ता यह पुष्टि कर सके कि किसी सहायक डिवाइस को किसी ऐप्लिकेशन से जोड़ा जाना चाहिए और उसे मैनेज किया जाना चाहिए. जब उपयोगकर्ता पुष्टि करता है, तो मैनेज करने वाला ऐप्लिकेशन, जोड़े गए ऐप्लिकेशन को सहायक डिवाइस को ऐक्सेस करने की अनुमति देता है. जैसे, उसका नाम, पता, क्लास, और बॉन्डिंग की स्थिति. इसके बाद, बॉन्डिंग की प्रोसेस शुरू की जा सकती है.
SYSTEM_DOCUMENT_MANAGER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में ऐसी गतिविधि होनी चाहिए जिससे उपयोगकर्ता, डिवाइस पर मौजूद दस्तावेज़ों को ऐक्सेस कर सकें और नए दस्तावेज़ बना सकें.
  • ऐप्लिकेशन को Android CDD के सेक्शन 2.2.3 में बताई गई सभी ज़रूरी शर्तें पूरी करनी होंगी. सॉफ़्टवेयर हेडिंग [3.2.3.1/H-0-1] के तहत दिया गया है.
SYSTEM_ACTIVITY_RECOGNIZER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • ऐप्लिकेशन में android.permission.ACTIVITY_RECOGNITION से जुड़ी सेवा है. यह सेवा, गतिविधि की पहचान कर सकती है. जैसे, दौड़ना या साइकल चलाना.
SYSTEM_UI इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में एक इंटरफ़ेस होता है, ताकि उपयोगकर्ता अपने फ़ोन से इंटरैक्ट कर सकें. उदाहरण के लिए, फ़ोन की मुख्य स्क्रीन, नेविगेशन, हाल ही में इस्तेमाल किए गए ऐप्लिकेशन, क्विक सेटिंग, सूचना बार, लॉकस्क्रीन, वॉल्यूम कंट्रोल.
SYSTEM_TELEVISION_REMOTE_SERVICE इन सभी के लिए:
  • यह ऐप्लिकेशन, Android TV पर एक सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन में एक ऐसी सेवा है जो टीवी के रिमोट कंट्रोल वाले एचआईडी डिवाइस (उदाहरण के लिए, बीएलई पर) से कम्यूनिकेट कर सकती है. साथ ही, इवेंट (उदाहरण के लिए, बटन क्लिक) इंजेक्ट कर सकती है और प्लैटफ़ॉर्म पर अन्य डेटा (उदाहरण के लिए, रिमोट में बने माइक्रोफ़ोन से ऑडियो स्ट्रीम) भेज सकती है.
SYSTEM_UI_INTELLIGENCE इन सभी के लिए:
  • यह पहले से इंस्टॉल की गई एक ऐसी सेवा है जो फ़्रेमवर्क एपीआई (सार्वजनिक या सिस्टम एपीआई) के ज़रिए, सिस्टम यूज़र इंटरफ़ेस (यूआई) की सुविधाओं के लिए डिवाइस पर मौजूद इंटेलिजेंट प्रोसेसर उपलब्ध कराती है. उदाहरण के लिए, लोगों के लिए अगले ऐप्लिकेशन का अनुमान लगाना और उन्हें दिखाना.
  • सेवा को Android CDD के सेक्शन 9.8.6 कॉन्टेंट कैप्चर करना में बताई गई सभी ज़रूरी शर्तें पूरी करनी होंगी.
  • सेवा के पास android.permission.INTERNET अनुमति नहीं हो सकती. इसके बजाय, इसे ओपन सोर्स प्रोजेक्ट में अच्छी तरह से तय किए गए एपीआई के ज़रिए इंटरनेट ऐक्सेस करना चाहिए.
  • यह सेवा, इन सिस्टम ऐप्लिकेशन के अलावा किसी भी ऐप्लिकेशन से नहीं जुड़ सकती: Bluetooth, Contacts, Media, Telephony, 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) से डिसकनेक्ट करना होगा. कनेक्ट किए गए डिवाइस की स्क्रीन को चालू रख सकता है. जैसे, WakeLock. इससे Android डिवाइस की स्क्रीन चालू रहती है. निष्क्रियता की वजह से समयसीमा खत्म होने की जानकारी मौजूद होनी चाहिए. अगर कनेक्ट किए गए डिवाइस (B) में, कुछ समय तक इस्तेमाल न होने पर अपने-आप बंद होने की सुविधा नहीं है, तो ज़्यादा से ज़्यादा पांच मिनट के लिए, कुछ समय तक इस्तेमाल न होने पर अपने-आप बंद होने की सुविधा का इस्तेमाल करना ज़रूरी है.
  • अगर सोर्स डिवाइस (A) में लॉकस्क्रीन नॉलेज फ़ैक्टर (एलएसकेएफ़) का इस्तेमाल किया जाता है, तो स्क्रीन लॉक होने पर ऐप्लिकेशन को कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीम नहीं करने चाहिए. ऐसा तब तक नहीं करना चाहिए, जब तक कनेक्ट किए गए डिवाइस (B) में लॉक स्क्रीन की सुविधा चालू न हो और उसे अनलॉक न किया गया हो.
  • अगर सोर्स डिवाइस (A) को एडमिन मैनेज करता है, तो ऐप्लिकेशन को एडमिन की ओर से सेट की गई नीतियों का पालन करना होगा. ये नीतियां, आस-पास मौजूद डिवाइसों पर स्ट्रीमिंग की सुविधा को चालू या बंद करने के बारे में होती हैं. उदाहरण के लिए, Android में DevicePolicyManager सेटिंग का इस्तेमाल करना.
  • यह पक्का करना ज़रूरी है कि रिमोट डिसप्ले और रिमोट इनपुट इवेंट के सभी सोर्स, एक ही लॉजिकल डिवाइस (उदाहरण के लिए, रिमोट डिसप्ले और कनेक्ट किया गया कीबोर्ड) से जुड़े हों. साथ ही, इवेंट को उसी के हिसाब से रूट किया गया हो.
  • उपयोगकर्ता के पास, सोर्स डिवाइस (A) से स्ट्रीमिंग बंद करने का विकल्प होना चाहिए. उदाहरण के लिए, लगातार दिखने वाली सूचना में मौजूद बटन का इस्तेमाल करके. अगर सोर्स डिवाइस (A) में स्क्रीन लॉक सेट है, तो यह सुविधा लॉकस्क्रीन पर काम करती है. सोर्स डिवाइस (A) पर, हमेशा दिखने वाला और फ़ोल्ड के ऊपर मौजूद यह अफ़ोर्डेंस दिखाना ज़रूरी है.
  • जब स्ट्रीमिंग किसी दूसरे डिवाइस पर हो रही हो, तब सोर्स डिवाइस (A) पर एक अफ़ॉर्डेंस दिखाना ज़रूरी है. जैसे, स्टेटस बार में आइकॉन या लगातार दिखने वाली सूचना.
DEVICE_POLICY_MANAGEMENT इन सभी के लिए:
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं. ऐप्लिकेशन इस भूमिका का अनुरोध नहीं कर सकते, क्योंकि यह भूमिका डिवाइस शिप करते समय ओईएम की ओर से तय किए गए पैकेज के नाम को बॉक्स से बाहर ही दे दी जाती है.
  • ऐप्लिकेशन में मैनेज की जा रही प्रोफ़ाइल (प्रोफ़ाइल का मालिक) या मैनेज किए जा रहे डिवाइस (डिवाइस का मालिक) को प्रोविज़न करने की सुविधा होनी चाहिए. इसमें, डिवाइस/प्रोफ़ाइल का मालिक बनने के लिए, ज़रूरी होने पर सही Device Policy Client को डाउनलोड और इंस्टॉल करना शामिल है.
  • यह ऐप्लिकेशन, डिवाइस की नीति को मैनेज करने के लिए इस्तेमाल किए जाने वाले संसाधन जैसे कि स्ट्रिंग और ड्रॉएबल को ज़रूरत के हिसाब से डाइनैमिक तरीके से अपडेट कर सकता है.
  • ऐप्लिकेशन, पहले से इंस्टॉल किया गया सिस्टम ऐप्लिकेशन हो सकता है या इसे डिवाइस को चालू करने से पहले डाउनलोड और इंस्टॉल किया जा सकता है.
  • प्रोफ़ाइल के मालिक के लिए ऐप्लिकेशन उपलब्ध कराने के मामलों में, जब भूमिका निभाने वाले ऐप्लिकेशन को किसी Android उपयोगकर्ता के डिवाइस पर इंस्टॉल किया जाता है, तो उसे उस उपयोगकर्ता के डिवाइस पर मौजूद सभी प्रोफ़ाइलों पर इंस्टॉल किया जाना चाहिए.
SYSTEM_APP_PROTECTION_SERVICE इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • ऐप्लिकेशन का मकसद सिर्फ़ ऐसे ऐप्लिकेशन का पता लगाना है जो नुकसान पहुंचा सकते हैं. जैसे, ऐसे ऐप्लिकेशन जो लोगों, उनके डेटा या डिवाइसों को खतरे में डाल सकते हैं. जैसे, ट्रोजन, फ़िशिंग, और स्पायवेयर ऐप्लिकेशन या मोबाइल के अनचाहे सॉफ़्टवेयर.
  • ऐप्लिकेशन को Android CDD के सेक्शन 9.8.6 में बताई गई सभी ज़रूरी शर्तें पूरी करनी होंगी. ओएस-लेवल और आस-पास के माहौल का डेटा.
  • ऐप्लिकेशन को android.permission.INTERNET सामान्य अनुमति का एलान नहीं करना चाहिए. इसके बजाय, इसे ओपन सोर्स प्रोजेक्ट में अच्छी तरह से तय किए गए एपीआई के ज़रिए इंटरनेट ऐक्सेस करना चाहिए.
  • ऐप्लिकेशन को इन सिस्टम ऐप्लिकेशन के अलावा, किसी अन्य ऐप्लिकेशन से नहीं जोड़ा जाना चाहिए: Permission Controller, और Telephony और Internet API उपलब्ध कराने वाले कॉम्पोनेंट. अनुमति वाली हर बाइंडिंग को साफ़ तौर पर सेट अप किया जाना चाहिए. इसके लिए, सिस्टम कॉन्फ़िग में <allow-association> कॉन्फ़िगरेशन का इस्तेमाल करें.
  • ऐप्लिकेशन को अन्य ऐप्लिकेशन के साथ डेटा शेयर नहीं करना चाहिए. हालांकि, अगर उपयोगकर्ता सीधे तौर पर कोई कार्रवाई करता है, तो डेटा शेयर किया जा सकता है. उदाहरण के लिए, जब उपयोगकर्ता हर बार डेटा शेयर करने के लिए बटन दबाता है.
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन को, उपयोगकर्ता के iOS या Android फ़ोन से Android Auto डिवाइस पर कैलेंडर डेटा ट्रांसफ़र करना होगा. Android Auto डिवाइस को, कैलेंडर का यह डेटा कैलेंडर प्रोवाइडर में सेव करना होगा.
  • ऐप्लिकेशन को फ़ोन पर एक यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट उपलब्ध कराना होगा, ताकि उपयोगकर्ता कैलेंडर सिंक करने की सुविधा चालू कर सके और सिंक करने के लिए कैलेंडर चुन सके. ऐप्लिकेशन को फ़ोन पर एक यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट उपलब्ध कराना होगा. इसका इस्तेमाल करके, उपयोगकर्ता कैलेंडर सिंक करने की सुविधा बंद कर सकता है.
  • ऐप्लिकेशन बिना इंटरनेट कनेक्शन के काम करना चाहिए. उदाहरण के लिए, तार वाले या वायरलेस कनेक्शन का सीधे तौर पर इस्तेमाल करके.
AUTOMOTIVE_NAVIGATION इन सभी के लिए:
  • ऐप्लिकेशन में एक ऐसी गतिविधि होती है जिसे ऐप्लिकेशन, इंप्लिसिट इंटेंट अनुरोधों के ज़रिए शुरू कर सकते हैं. इससे उपयोगकर्ता को उसकी मौजूदा जगह और आस-पास की जगहों के बारे में जानकारी मिलती है.
  • ऐप्लिकेशन में एक ऐसी गतिविधि होती है जिसे ऐप्लिकेशन, इंप्लिसिट इंटेंट अनुरोधों के ज़रिए शुरू कर सकते हैं. इससे उपयोगकर्ता किसी तय जगह की जानकारी पर जा सकता है.
  • ऐप्लिकेशन में एक ऐसी गतिविधि होती है जिसे इंस्ट्रूमेंट क्लस्टर पर तब लॉन्च किया जाता है, जब ऐप्लिकेशन के पास नेविगेशन फ़ोकस होता है. गतिविधि में, उपयोगकर्ता की मौजूदा जगह और आस-पास की जगहें दिखनी चाहिए. साथ ही, उन्हें किसी तय की गई जगह पर जाने की सुविधा मिलनी चाहिए.
COMPANION_DEVICE_COMPUTER इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • यह कुकी, उपयोगकर्ताओं को सूचनाएं मिरर करने और कनेक्ट किए गए कंप्यूटर पर फ़ोन से फ़ोटो और मीडिया ऐक्सेस करने की सुविधा देती है.
SYSTEM_SETTINGS_INTELLIGENCE इनमें से कम से कम एक:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • इस ऐप्लिकेशन में एक ऐसी सेवा है जो Settings ऐप्लिकेशन के लिए, इंटेलिजेंस से जुड़ी सुविधाएं उपलब्ध कराती है. जैसे, सुझाव और खोज.
NOTES इन सभी के लिए:
  • ऐप्लिकेशन में एक ऐसी गतिविधि है जिसे ऐप्लिकेशन, इंप्लिसिट इंटेंट अनुरोधों के ज़रिए शुरू कर सकते हैं. इस गतिविधि की मदद से, उपयोगकर्ता स्क्रीन लॉक होने या न होने पर भी नोट बना सकता है.
  • ऐप्लिकेशन में ऐसी गतिविधि होनी चाहिए जो इस सुविधा के साथ काम करती हो. साथ ही, इसमें android.intent.action.CREATE_NOTE के लिए इंटेंट फ़िल्टर होना चाहिए. साथ ही, इसमें android.intent.category.DEFAULT कैटगरी होनी चाहिए. गतिविधि को इंटेंट एक्स्ट्रा android.intent.extra.USE_STYLUS_MODE को भी सही तरीके से हैंडल करना चाहिए.
  • ऐप्लिकेशन में, मेनिफ़ेस्ट एट्रिब्यूट showWhenLocked और turnScreenOn, दोनों को true पर सेट किया जाना चाहिए.
COMPANION_DEVICE_GLASSES यह ऐप्लिकेशन, चश्मे वाले डिवाइस से जुड़ने और उसे मैनेज करने के लिए अनुरोध कर सकता है. इसके लिए, CompanionDeviceManager क्लास से मिले एपीआई का इस्तेमाल किया जाता है. जब चश्मे वाले डिवाइस और ऐप्लिकेशन को सीडीएम की ओर से उपलब्ध कराए गए यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके कनेक्ट किया जाता है, तो उपयोगकर्ता अपने चश्मे वाले डिवाइस को मैनेज कर सकते हैं. इसके लिए, उन्हें डिवाइस को संपर्कों का ऐक्सेस देना होगा. साथ ही, सूचनाओं और फ़ोन कॉल को मैनेज करने की अनुमति देनी होगी.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • इस्तेमाल के वे उदाहरण जिनके लिए अनुमति है:
    • Android डिवाइस, जैसे कि मोबाइल फ़ोन या टैबलेट से किसी वाहन में ऐप्लिकेशन स्ट्रीम करना.
    • Android डिवाइस, जैसे कि मोबाइल फ़ोन या टैबलेट से XR डिवाइस पर ऐप्लिकेशन स्ट्रीम करना.
  • डिवाइस 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 25Q2 से, कनेक्ट किए गए डिवाइस (B) पर, संवेदनशील कॉन्टेंट का स्क्रीनशॉट लेने और उसे पढ़कर सुनाने की सुविधा को बंद करना ज़रूरी है. जैसे, सुरक्षित विंडो और सर्फ़ेस.
  • कनेक्ट किए गए डिवाइस के ओएस बिल्ड की पुष्टि करनी होगी. उदाहरण के लिए, VerifiedBootState में बताए गए तरीके से डिवाइस की पुष्टि करके.
  • सिर्फ़ उन ऐप्लिकेशन को स्ट्रीम करें जिनके लिए, दोनों डिवाइसों पर डिवाइस में मौजूद खाता रजिस्ट्री में सिर्फ़ एक मैचिंग खाता मौजूद हो. उदाहरण के लिए, Android पर AccountManager क्लास. अगर ऐसा नहीं है, तो स्ट्रीमिंग के लिए, एक बार इस्तेमाल होने वाले कोड से पुष्टि करना ज़रूरी है. यह कोड, सोर्स डिवाइस (A) पर दिखता है और इसे कनेक्ट किए गए डिवाइस (B) पर डाला जाता है. ध्यान दें कि जिन डिवाइसों पर एक से ज़्यादा उपयोगकर्ता इस्तेमाल किए जा सकते हैं (और एक से ज़्यादा खाते नहीं), उनमें डेटा को अलग-अलग रखने की सुविधा होती है. जैसे, Android पर एक से ज़्यादा उपयोगकर्ता. ऐसे में, उपयोगकर्ता को डिवाइस के तौर पर गिना जाता है.
  • अगर कनेक्ट किए गए डिवाइस (B) पर खाते की पुष्टि करने की समयसीमा खत्म हो जाती है या उसे रद्द कर दिया जाता है, तो स्ट्रीमिंग बंद कर दें और कनेक्ट किए गए डिवाइस (B) से तुरंत डिसकनेक्ट कर दें.
  • अगर कनेक्ट किए गए डिवाइस (B) पर डिसप्ले कॉन्टेंट नहीं दिख रहा है, तो उसे स्ट्रीमिंग बंद करनी होगी और कनेक्ट किए गए डिवाइस (B) से डिसकनेक्ट करना होगा. कनेक्ट किए गए डिवाइस की स्क्रीन को चालू रख सकता है. जैसे, WakeLock. इससे Android डिवाइस की स्क्रीन चालू रहती है. निष्क्रियता की वजह से समयसीमा खत्म होने की जानकारी मौजूद होनी चाहिए. अगर कनेक्ट किए गए डिवाइस (B) में, कुछ समय तक इस्तेमाल न होने पर अपने-आप बंद होने की सुविधा नहीं है, तो ज़्यादा से ज़्यादा पांच मिनट के लिए, कुछ समय तक इस्तेमाल न होने पर अपने-आप बंद होने की सुविधा का इस्तेमाल करना ज़रूरी है.
  • अगर सोर्स डिवाइस (A) में लॉकस्क्रीन नॉलेज फ़ैक्टर (एलएसकेएफ़) का इस्तेमाल किया जाता है, तो स्क्रीन लॉक होने पर ऐप्लिकेशन को कनेक्ट किए गए डिवाइस (B) पर ऐप्लिकेशन स्ट्रीम नहीं करने चाहिए. ऐसा तब तक नहीं करना चाहिए, जब तक कनेक्ट किए गए डिवाइस (B) में लॉक स्क्रीन की सुविधा चालू न हो और उसे अनलॉक न किया गया हो.
  • अगर सोर्स डिवाइस (A) को एडमिन मैनेज करता है, तो ऐप्लिकेशन को एडमिन की ओर से सेट की गई नीतियों का पालन करना होगा. ये नीतियां, आस-पास मौजूद डिवाइसों पर स्ट्रीमिंग की सुविधा को चालू या बंद करने के बारे में होती हैं. उदाहरण के लिए, Android में DevicePolicyManager सेटिंग का इस्तेमाल करना.
  • यह पक्का करना ज़रूरी है कि रिमोट डिसप्ले और रिमोट इनपुट इवेंट के सभी सोर्स, एक ही लॉजिकल डिवाइस (उदाहरण के लिए, रिमोट डिसप्ले और कनेक्ट किया गया कीबोर्ड) से जुड़े हों. साथ ही, इवेंट को उसी के हिसाब से रूट किया गया हो.
  • उपयोगकर्ता के पास, सोर्स डिवाइस (A) से स्ट्रीमिंग बंद करने का विकल्प होना चाहिए. उदाहरण के लिए, लगातार दिखने वाली सूचना में मौजूद बटन का इस्तेमाल करके. अगर सोर्स डिवाइस (A) में स्क्रीन लॉक सेट है, तो यह सुविधा लॉकस्क्रीन पर काम करती है. सोर्स डिवाइस (A) पर, हमेशा दिखने वाला और फ़ोल्ड के ऊपर मौजूद यह अफ़ोर्डेंस दिखाना ज़रूरी है.
  • जब स्ट्रीमिंग किसी दूसरे डिवाइस पर हो रही हो, तब सोर्स डिवाइस (A) पर एक अफ़ॉर्डेंस दिखाना ज़रूरी है. जैसे, स्टेटस बार में आइकॉन या लगातार दिखने वाली सूचना.
WALLET इनमें से कोई एक:
  • ऐप्लिकेशन में NFC APDU सेवा है, जो PAYMENT कैटगरी में कम से कम एक एआईडी को स्टैटिक तौर पर रजिस्टर करती है.
  • ऐप्लिकेशन, QuickAccessWalletService के इंस्टेंस को लागू करता है.

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