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 के साथ इंटरैक्ट कर सकते हैं. उदाहरण के लिए, किसी फ़ोल्डर का कॉन्टेंट दिखाना या ऐप्लिकेशन लॉन्च करना. शेल कमांड को, ऐप्लिकेशन की मदद से प्रोग्राम के हिसाब से लागू किया जा सकता है. इसके लिए, ज़रूरी अनुमतियां दी जानी चाहिए. इसके अलावा, ADB टूल से भी शेल कमांड लागू की जा सकती हैं.
SYSTEM_CONTACTS इन सभी के लिए:
  • यह ऐप्लिकेशन, सिस्टम ऐप्लिकेशन है.
  • सिर्फ़ ओईएम, ऐप्लिकेशन को यह भूमिका दे सकते हैं.
  • ऐप्लिकेशन, उपयोगकर्ताओं को यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है. इसकी मदद से, वे अपने संपर्कों को मैनेज कर सकते हैं. उदाहरण के लिए, किसी संपर्क को देखना, शेयर करना, जोड़ना, हटाना या खोजना. जब उपयोगकर्ता ऐप्लिकेशन से अपने संपर्कों की जानकारी अपडेट करता है, तब ऐप्लिकेशन, Contacts provider को अपडेट करता है. उपयोगकर्ता, ऐप्लिकेशन से अपने संपर्कों को कॉल, ईमेल या मैसेज भी भेज सकते हैं.
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 इन सभी के लिए:
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.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 डिवाइस, जैसे कि मोबाइल फ़ोन या टैबलेट से 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 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) पर एक अफ़ोर्डेंस दिखाना ज़रूरी है. जैसे, स्टेटस बार में कोई आइकॉन या हमेशा दिखने वाली सूचना.
WALLET इनमें से कोई एक:
  • ऐप्लिकेशन में NFC APDU सेवा है, जो PAYMENT कैटगरी में कम से कम एक एआईडी को स्टैटिक तौर पर रजिस्टर करती है.
  • ऐप्लिकेशन, QuickAccessWalletService के किसी इंस्टेंस को लागू करता है.

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