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

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