एंड्रॉइड भूमिकाएँ

भूमिका सिस्टम के भीतर कुछ अनुमतियों और विशेषाधिकारों से जुड़ा एक अद्वितीय नाम है। ऐप्स एंड्रॉइड एपीआई के माध्यम से कुछ भूमिकाएं रखने का अनुरोध कर सकते हैं, विशेष रूप से RoleManager क्लास में विधियों को लागू करके।

उपलब्ध भूमिकाओं और उनकी संगत आवश्यकताओं के लिए निम्नलिखित सूची देखें।

भूमिका आवश्यकताएं
सहायक इनमें से कम से कम एक:
  • ऐप में एक गतिविधि है जो सहायता का अनुरोध करने पर उपयोगकर्ता के संदर्भ के बारे में जानकारी देते हुए सहायक क्रियाएं करती है (उदाहरण के लिए, वर्तमान अग्रभूमि ऐप के लिए पैकेज का नाम और इसकी प्रासंगिक जानकारी)।
  • ऐप में android.permission.BIND_VOICE_INTERACTION अनुमति द्वारा गेटेड एक हमेशा ऑन वॉयस इंटरेक्शन सेवा है, जो आवाज पहचान कर सकती है और सक्रिय वॉयस इंटरैक्शन सत्र होस्ट कर सकती है। इसके अतिरिक्त, ऐप में एक स्पष्ट ध्वज है जो दर्शाता है कि सेवा सहायता कार्रवाई को संभालने में सक्षम है।
ब्राउज़र के सभी:
  • ऐप में एक गतिविधि है, जिसे ऐप्स अंतर्निहित इरादे के अनुरोधों के माध्यम से लागू कर सकते हैं, जो http:// पते के अनुरूप एक वेबपेज प्रदर्शित करता है।
  • ऐप को लिंक के बीच नेविगेशन को संभालने की जरूरत है। यानी, यदि उपयोगकर्ता एक वेबपेज देख रहा है और टेक्स्ट में http:// पते पर क्लिक करता है, तो ऐप को अतिरिक्त उपयोगकर्ता के हस्तक्षेप के बिना चयनित लिंक के अनुरूप सामग्री प्रदर्शित करने में सक्षम होना चाहिए।
  • अनुरोध किए जाने पर ऐप को डिवाइस की वर्तमान जियोलोकेशन जानकारी वेब पेजों पर प्रदान करने में सक्षम होना चाहिए और उपयोगकर्ता अनुरोध को मंजूरी दे देता है।
डायलर के सभी:
  • ऐप में एक गतिविधि है, जिसे ऐप्स अंतर्निहित इरादे के अनुरोधों के माध्यम से लागू कर सकते हैं, जो डिवाइस के कॉल के दौरान इन-कॉल उपयोगकर्ता इंटरफ़ेस प्रदान करता है।
  • ऐप इनकमिंग कॉल के इरादों को संभाल सकता है, उपयोगकर्ता को कॉल से संबंधित जानकारी (उदाहरण के लिए, कॉलर का फ़ोन नंबर) प्रदर्शित कर सकता है और उपयोगकर्ता को कॉल का उत्तर देने या अस्वीकार करने की अनुमति दे सकता है।
  • ऐप उपयोगकर्ता को कॉल शुरू करने और अपने डिवाइस पर कॉल का इतिहास देखने का साधन प्रदान करता है।
एसएमएस के सभी:
  • यह ऐप एसएमएस ऐप्स की सभी आवश्यकताओं को पूरा करता है।
  • ऐप में एक गतिविधि है, जिसे ऐप्स अंतर्निहित इरादे के अनुरोधों के माध्यम से लागू कर सकते हैं, जो किसी फ़ोन नंबर पर एक संदेश भेज सकते हैं।
  • ऐप में एक सेवा है, जो android.permission.SEND_RESPOND_VIA_MESSAGE अनुमति द्वारा गेट की गई है और अंतर्निहित इरादों द्वारा लागू की जा सकती है, जो फोन ऐप से प्राप्त संदेशों को डिलीवर कर सकती है जब उपयोगकर्ता इनकमिंग कॉल के दौरान संदेश के माध्यम से जवाब देने का विकल्प चुनता है। ऐप अपने स्वयं के मैसेजिंग सिस्टम के माध्यम से संदेश भेज सकता है।
  • ऐप में दो प्रसारण रिसीवर हैं, एक android.permission.BROADCAST_SMS अनुमति द्वारा गेट किया गया है और एक android.permission.BROADCAST_WAP_PUSH अनुमति द्वारा गेट किया गया है, जो क्रमशः डिवाइस पर भेजे गए टेक्स्ट-आधारित एसएमएस और एमएमएस संदेशों को सुन सकता है। इसके बाद ऐप एसएमएस प्रदाता को संदेश लिखने और उपयोगकर्ताओं को सूचित करने के लिए जिम्मेदार है।
आपातकाल के सभी:
  • ऐप एक सिस्टम ऐप है।
  • ऐप में एक गतिविधि है जो उपयोगकर्ता की आपातकालीन जानकारी प्रस्तुत करती है। आपातकालीन डायलर गतिविधि पर आपातकालीन बटन के माध्यम से कोई भी इस स्क्रीन पर नेविगेट कर सकता है।
घर ऐप में एक गतिविधि है जो उपयोगकर्ता द्वारा होम बटन दबाने पर होम स्क्रीन लॉन्च कर सकती है। होम स्क्रीन को ऐप आइकन, विजेट दिखाना चाहिए और बटन या जेस्चर के आधार पर नेविगेशन का समर्थन करना चाहिए (उदाहरण के लिए, सभी ऐप्स देखने के लिए ऊपर की ओर स्वाइप करना)।
कॉल_निर्देशन ऐप में एक सेवा है, जिसे android.permission.BIND_CALL_REDIRECTION_SERVICE अनुमति द्वारा गेट किया गया है, जिससे टेलीकॉम फ्रेमवर्क जुड़ सकता है। सेवा टेलीकॉम ढांचे से आउटगोइंग फोन नंबर प्राप्त करती है और निम्नलिखित में से एक कार्य करती है:
  • कॉल को यथावत रखने की अनुमति दें।
  • आउटगोइंग नंबर को प्रॉक्सी नंबर के माध्यम से रूट करने के लिए बदलें।
  • कॉल रद्द करें.
कॉल की छानबीन ऐप में android.permission.BIND_SCREENING_SERVICE अनुमति द्वारा संचालित एक सेवा है, जो दो कार्य करती है:
  1. कॉल ब्लॉकिंग/स्क्रीनिंग: सेवा यह चुन सकती है कि कौन सी कॉल फोन पर डायलर ऐप पर भेजी जानी चाहिए (और संभावित रूप से रिंग, डीएनडी/वॉल्यूम दिए जाने पर), और कौन सी चुपचाप वॉइसमेल पर भेजी जानी चाहिए।
  2. कॉल पहचान: सेवा उपयोगकर्ता इंटरफ़ेस के माध्यम से कॉल के बारे में जानकारी पहचान और प्रदर्शित कर सकती है।
सिस्टम_गैलरी के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप उपयोगकर्ताओं को अपने वीडियो और छवियों को संग्रहीत करने, व्यवस्थित करने और प्रदर्शित करने के लिए एक यूआई प्रदान करता है।
सिस्टम_ऑटोमोटिव_क्लस्टर के सभी:
  • ऐप ऑटोमोटिव पर एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप उपयोगकर्ताओं को फोन कॉल का जवाब देने और संपर्क सूचियों और कॉल लॉग तक पहुंचने के लिए ऑटोमोटिव क्लस्टर डिस्प्ले (आमतौर पर स्टीयरिंग व्हील के नजदीक) के लिए कार्यक्षमता प्रदान करता है।
COMPANION_DEVICE_WATCH ऐप किसी वॉच डिवाइस से संबद्ध होने और उसे प्रबंधित करने के लिए अनुरोध कर सकता है ( CompanionDeviceManager वर्ग द्वारा प्रदान की गई एपीआई का उपयोग करके)। एक बार जब घड़ी और ऐप ऐप द्वारा प्रदान किए गए यूआई के माध्यम से कनेक्ट हो जाते हैं, तो उपयोगकर्ता ऐप से अपनी घड़ी का प्रबंधन कर सकते हैं, जिसमें संपर्क और कैलेंडर को सिंक करना और सूचनाओं और फोन कॉल को प्रबंधित करना शामिल है।
सिस्टम_ऑटोमोटिव_प्रोजेक्शन के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप फोन स्क्रीन को इन-व्हीकल डिस्प्ले पर प्रोजेक्ट करने में सक्षम बनाता है। यह ड्राइवरों को टच, स्टीयरिंग व्हील नियंत्रण और वॉयस कमांड सहित वाहन पर इनपुट तंत्र का उपयोग करके संगीत, नेविगेशन, फोन कॉल और Google खोज सहित एंड्रॉइड फोन पर एप्लिकेशन तक पहुंचने और नियंत्रित करने की अनुमति देता है।
सिस्टम_शेल के सभी:
  • ऐप एक सिस्टम ऐप है जिसे Process.SHELL_UID UID असाइन किया गया है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप एक इंटरफ़ेस प्रदान करता है जो कमांड-लाइन स्तर पर काम करता है ताकि उपयोगकर्ता एंड्रॉइड ओएस के साथ बातचीत कर सकें। उदाहरण के लिए, किसी फ़ोल्डर की सामग्री प्रदर्शित करना या ऐप्स लॉन्च करना। शेल कमांड को ऐप्स द्वारा प्रोग्रामेटिक रूप से निष्पादित किया जा सकता है (आवश्यक अनुमतियां दी गई हैं), या एडीबी टूल से।
सिस्टम_संपर्क के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप उपयोगकर्ताओं को अपने संपर्कों को प्रबंधित करने के लिए एक यूआई प्रदान करता है (उदाहरण के लिए, किसी संपर्क को देखना, साझा करना, जोड़ना, हटाना या खोजना)। जब उपयोगकर्ता ऐप से अपने संपर्क अपडेट करता है तो ऐप संपर्क प्रदाता को अपडेट करता है। उपयोगकर्ता ऐप से अपने संपर्कों को कॉल, ईमेल या टेक्स्ट संदेश भी भेज सकते हैं।
सिस्टम_स्पीच_पहचानकर्ता के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप एक ऐसी सेवा प्रदान करता है जो वाक् पहचान कर सकती है।
  • जब ऐप वाक् पहचान के लिए किसी अन्य ऐप से लाइव माइक्रोफ़ोन स्ट्रीम प्राप्त करता है, तो यह कॉलिंग ऐप को माइक्रोफ़ोन उपयोग का सही श्रेय देता है और तदनुसार एप्लिकेशन ऑपरेशन आंकड़ों को अपडेट करता है।
सिस्टम_वाईफ़ाई_COEX_MANAGER के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप में एक ऐसी सेवा है जो गतिशील रूप से वाई-फाई चैनलों की एक सूची सेट करती है जिन्हें सेलुलर हस्तक्षेप के कारण डिवाइस को उपयोग करने से बचना चाहिए।
सिस्टम_कल्याण के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप को उपयोगकर्ताओं के लिए विकर्षण को कम करने और उपयोगकर्ताओं को उनके डिवाइस का उपयोग करने के तरीके के बारे में आंकड़े देने के लिए कार्यक्षमता प्रदान करनी चाहिए (उदाहरण के लिए, प्रति सप्ताह उनका स्क्रीन समय)।
सिस्टम_टेलीविजन_नोटिफिकेशन_हैंडलर के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप को टीवी उपकरणों पर उपयोगकर्ताओं को हेड-अप सूचनाएं दिखानी होंगी। जब android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL इंटेंट भेजा जाता है (SystemUI से) तो ऐप को वर्तमान सक्रिय सूचनाएं भी दिखानी होंगी।
सिस्टम_कंपनी_डिवाइस_प्रदाता के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप को अपने आसपास के परिधीय उपकरणों का पता लगाने में सक्षम होना चाहिए। इसमें एक यूआई होना चाहिए जहां उपयोगकर्ता यह पुष्टि कर सके कि किसी दिए गए परिधीय उपकरण को एक ऐप के साथ संबद्ध और प्रबंधित किया जाना चाहिए। एक बार जब उपयोगकर्ता पुष्टि कर देता है, तो प्रबंधन ऐप संबंधित ऐप को परिधीय डिवाइस (उदाहरण के लिए, इसका नाम, पता, वर्ग और बॉन्डिंग स्थिति) तक पहुंचने की अनुमति देता है और यह बॉन्डिंग प्रक्रिया शुरू कर सकता है।
सिस्टम_दस्तावेज़_प्रबंधक के सभी:
सिस्टम_गतिविधि_पहचानकर्ता के सभी:
  • ऐप एक सिस्टम ऐप है।
  • ऐप में android.permission.ACTIVITY_RECOGNITION द्वारा गेटेड एक सेवा है, जो गतिविधि पहचान (उदाहरण के लिए, दौड़ना या साइकिल चलाना) कर सकती है।
सिस्टम_यूआई के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप में उपयोगकर्ताओं के लिए अपने फोन के साथ बातचीत करने के लिए एक इंटरफ़ेस है। उदाहरण के लिए, फ़ोन की मुख्य स्क्रीन, नेविगेशन, हालिया एप्लिकेशन, त्वरित सेटिंग्स, अधिसूचना बार, लॉकस्क्रीन, वॉल्यूम नियंत्रण।
सिस्टम_टेलीविजन_रिमोट_सेवा के सभी:
  • ऐप एंड्रॉइड टीवी पर एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप में एक सेवा है जो टीवी रिमोट कंट्रोल एचआईडी डिवाइस (उदाहरण के लिए, बीएलई पर) के साथ संचार कर सकती है, घटनाओं को इंजेक्ट कर सकती है (उदाहरण के लिए, बटन क्लिक), और अन्य डेटा भेज सकती है (उदाहरण के लिए, रिमोट में निर्मित माइक्रोफ़ोन से ऑडियो स्ट्रीम) ) मंच में.
सिस्टम_यूआई_इंटेलिजेंस के सभी:
  • एक पूर्व-स्थापित सेवा होने के नाते, जो फ्रेमवर्क एपीआई (सार्वजनिक या सिस्टम एपीआई) के माध्यम से, सिस्टम यूआई सुविधाओं के लिए एक ऑन-डिवाइस इंटेलिजेंट प्रोसेसर प्रदान करती है (उदाहरण के लिए, उपयोगकर्ताओं के लिए अगले ऐप्स की भविष्यवाणी करना और दिखाना)।
  • सेवा को एंड्रॉइड सीडीडी अनुभाग 9.8.6 कंटेंट कैप्चर में उल्लिखित सभी आवश्यकताओं को पूरा करना होगा।
  • इसमें android.permission.INTERNET अनुमति नहीं हो सकती। इसके बजाय, इसे एक ओपन सोर्स प्रोजेक्ट में अच्छी तरह से परिभाषित एपीआई के माध्यम से इंटरनेट तक पहुंच प्राप्त करनी होगी।
  • यह निम्नलिखित सिस्टम ऐप्स को छोड़कर, ऐप्स से आबद्ध नहीं हो सकता है: ब्लूटूथ, संपर्क, मीडिया, टेलीफोनी, सिस्टमयूआई और इंटरनेट एपीआई प्रदान करने वाले घटक। प्रत्येक अनुमत बाइंडिंग को सिस्टम कॉन्फ़िगरेशन में <allow-association> कॉन्फ़िगरेशन के माध्यम से स्पष्ट रूप से सेट किया जाना चाहिए।
  • यह ऐप्स के साथ डेटा साझा नहीं कर सकता जब तक कि कोई प्रत्यक्ष उपयोगकर्ता कार्रवाई न हो (उदाहरण के लिए, उपयोगकर्ता हर बार डेटा साझा करने पर स्पष्ट रूप से एक बटन दबाता है)।
सिस्टम_AMBIENT_ऑडियो_इंटेलिजेंस के सभी:
  • SYSTEM_UI_INTELLIGENCE के लिए शर्तों के समान, सिवाय इसके कि पूर्व-स्थापित सेवा परिवेश ऑडियो के लिए एक ऑन-डिवाइस इंटेलिजेंट प्रोसेसर प्रदान करती है (उदाहरण के लिए, डिवाइस के पास बजने वाले गानों को पहचानना)।
सिस्टम_ऑडियो_इंटेलिजेंस के सभी:
  • SYSTEM_UI_INTELLIGENCE के लिए शर्तों के समान, सिवाय इसके कि पूर्व-स्थापित सेवा ऑडियो के लिए एक ऑन-डिवाइस इंटेलिजेंट प्रोसेसर प्रदान करती है (उदाहरण के लिए, कैप्शनिंग वीडियो, पॉडकास्ट, फोन कॉल, वीडियो कॉल और ऑडियो संदेश)।
सिस्टम_नोटिफिकेशन_इंटेलिजेंस के सभी:
  • SYSTEM_UI_INTELLIGENCE के लिए शर्तों के समान, सिवाय इसके कि पूर्व-स्थापित सेवा सूचनाओं के लिए एक ऑन-डिवाइस इंटेलिजेंट प्रोसेसर प्रदान करती है (उदाहरण के लिए संदेश सूचनाओं के लिए उत्तर और क्रियाओं का सुझाव देना)।
सिस्टम_टेक्स्ट_इंटेलिजेंस के सभी:
  • SYSTEM_UI_INTELLIGENCE के लिए शर्तों के समान, सिवाय इसके कि पूर्व-स्थापित सेवा पाठ के लिए एक ऑन-डिवाइस इंटेलिजेंट प्रोसेसर प्रदान करती है (उदाहरण के लिए लाइव अनुवाद या ऑटोफिल प्रदान करना)।
सिस्टम_विज़ुअल_इंटेलिजेंस के सभी:
  • SYSTEM_UI_INTELLIGENCE के लिए शर्तों के समान, सिवाय इसके कि पूर्व-स्थापित सेवा दृश्य सुविधाओं के लिए एक ऑन-डिवाइस बुद्धिमान प्रोसेसर प्रदान करती है जिसमें कैमरा डेटा का विश्लेषण शामिल है। उदाहरण के लिए, जब उपयोगकर्ता फ़ोन को देख रहा हो तो उसकी स्क्रीन को चालू रखना या डिवाइस पर सामने वाले कैमरे से उपयोगकर्ता के चेहरे के ओरिएंटेशन के आधार पर आदर्श स्क्रीन ओरिएंटेशन का निर्धारण करना।
कंपेनियन_डिवाइस_एपीपी_स्ट्रीमिंग के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप कनेक्टेड डिवाइसों के साथ संचार चैनल बना और प्रबंधित कर सकता है ताकि वे डेटा का आदान-प्रदान कर सकें। इन संचार चैनलों को स्थापित करने के लिए ऐप और कनेक्टेड डिवाइस को एक-दूसरे को सफलतापूर्वक प्रमाणित करना होगा (उदाहरण के लिए, साझा कुंजी के बारे में अपने ज्ञान को साबित करके)। संचार चैनलों में एन्क्रिप्शन सुरक्षा होनी चाहिए।
  • ऐप स्थानीय डिवाइस से कनेक्टेड डिवाइस पर नोटिफिकेशन भेज सकता है ताकि उपयोगकर्ता कनेक्टेड डिवाइस पर नोटिफिकेशन पर कार्रवाई कर सके।
  • ऐप स्ट्रीमिंग के लिए आवश्यक मेटाडेटा को कनेक्टेड डिवाइस पर स्ट्रीम करने में सक्षम हो, जैसे कि स्थानीय डिवाइस पर उपलब्ध एप्लिकेशन की सूची।
  • उपयोगकर्ता द्वारा स्पष्ट सहमति (या तो फोन पर या कनेक्टेड डिवाइस पर) के साथ ऐसा करने की इच्छा व्यक्त करने के बाद स्थानीय डिवाइस से कनेक्टेड डिवाइस पर एप्लिकेशन स्ट्रीम करने में सक्षम हो।
  • कनेक्टेड डिवाइस पर स्ट्रीम किए गए एप्लिकेशन पर होने वाली घटनाओं को स्थानीय डिवाइस पर दोबारा चलाने (इंजेक्ट) करने में सक्षम हो। उदाहरण के लिए, टैबलेट पर किसी टच इवेंट को फ़ोन पर समान निर्देशांक पर दोबारा चलाना।
  • ऐप स्थानीय डिवाइस के माइक्रोफ़ोन स्ट्रीम को कनेक्टेड डिवाइस के माइक्रोफ़ोन स्ट्रीम से बदल सकता है जबकि स्ट्रीम किया गया ऐप माइक्रोफ़ोन का उपयोग कर रहा है।
  • ऐप डिवाइस से ऑडियो कैप्चर करता है और उसे कनेक्टेड डिवाइस पर स्ट्रीम करता है।
  • जब कोई स्ट्रीम किया गया ऐप कैमरे का उपयोग कर रहा हो तो उसे स्थानीय डिवाइस के कैमरा स्ट्रीम को ब्लॉक करना होगा।
  • कनेक्टेड डिवाइस के OS बिल्ड की अखंडता को सत्यापित करना होगा (उदाहरण के लिए, VerifiedBootState में डिवाइस सत्यापन का उपयोग करके)।
  • केवल उन्हीं ऐप्स को स्ट्रीम करें जहां दोनों डिवाइस पर ऑन-डिवाइस अकाउंट रजिस्ट्री (उदाहरण के लिए, एंड्रॉइड पर अकाउंट मैनेजर ) में केवल एक मेल खाने वाला खाता है। यदि यह मामला नहीं है, तो स्ट्रीमिंग को स्रोत डिवाइस पर दिखाए गए एक बार कोड के साथ अधिकृत किया जाना चाहिए और कनेक्टेड डिवाइस पर दर्ज किया जाना चाहिए। ध्यान दें कि उन डिवाइसों के मामले में जो एंड्रॉइड मल्टी-यूज़र की तरह समान गारंटीकृत डेटा अलगाव के साथ मल्टी उपयोगकर्ताओं (और मल्टी अकाउंट्स नहीं) का समर्थन करते हैं, एक उपयोगकर्ता को एक डिवाइस के रूप में गिना जाता है।
  • यदि कनेक्टेड डिवाइस पर खाते का प्रमाणीकरण समाप्त हो जाता है या रद्द कर दिया जाता है, तो तुरंत स्ट्रीमिंग बंद कर देनी चाहिए और कनेक्टेड डिवाइस से डिस्कनेक्ट हो जाना चाहिए।
  • यह सत्यापित करना होगा कि कनेक्टेड डिवाइस स्ट्रीमिंग से पहले और उसके दौरान स्थानीय डिवाइस की ब्लूटूथ रेंज के भीतर है।
  • यदि उपयोगकर्ता 5 मिनट तक कनेक्टेड डिवाइस (उदाहरण के लिए, कीबोर्ड, टच स्क्रीन और माउस निष्क्रिय हैं) के साथ इंटरैक्ट नहीं करता है, तो चल रहे ऐप स्ट्रीमिंग सत्र को डिस्कनेक्ट करना होगा। वीडियो स्ट्रीमिंग ऐप्स को इस आवश्यकता से छूट दी गई है।
  • यदि स्रोत डिवाइस लॉकस्क्रीन नॉलेज फैक्टर (एलएसकेएफ) का उपयोग करता है, तो स्क्रीन लॉक होने पर, ऐप को किसी कनेक्टेड डिवाइस पर एप्लिकेशन स्ट्रीम नहीं करना चाहिए, जब तक कि उस डिवाइस में लॉक स्क्रीन न हो और वह अनलॉक न हो।
  • यदि डिवाइस को व्यवस्थापक द्वारा प्रबंधित किया जाता है, तो ऐप को आस-पास के डिवाइस पर ऐप स्ट्रीमिंग को सक्षम या अक्षम करने के बारे में व्यवस्थापक द्वारा निर्धारित नीतियों का सम्मान करना चाहिए (उदाहरण के लिए, एंड्रॉइड में डिवाइसपॉलिसीमैनेजर सेटिंग्स का उपयोग करके)।
  • यह सुनिश्चित करना चाहिए कि रिमोट डिस्प्ले और रिमोट इनपुट इवेंट के सभी स्रोत उपयोगकर्ता के दृष्टिकोण से एक ही तार्किक डिवाइस (उदाहरण के लिए, एक रिमोट डिस्प्ले और एक कनेक्टेड कीबोर्ड) से संबंधित हैं और इवेंट तदनुसार रूट किए गए हैं।
  • उपयोगकर्ता को स्थानीय डिवाइस से स्ट्रीमिंग समाप्त करने में सक्षम होना चाहिए, उदाहरण के लिए, लगातार अधिसूचना में एक बटन का उपयोग करके। यदि फ़ोन में स्क्रीन लॉक सेट है तो यह व्यवहार लॉकस्क्रीन द्वारा गेट किया जाता है।
  • जब स्ट्रीमिंग किसी अन्य डिवाइस पर हो रही हो, जैसे स्टेटस बार में एक आइकन या लगातार अधिसूचना, तो स्रोत डिवाइस पर एक खर्च दिखाना होगा।
डिवाइस_नीति_प्रबंधन के सभी:
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं। एप्लिकेशन इस भूमिका के लिए अनुरोध नहीं कर सकते क्योंकि इसका उद्देश्य डिवाइस भेजे जाने पर ओईएम द्वारा परिभाषित पैकेज नाम को आउट-ऑफ-द-बॉक्स प्रदान करना है।
  • ऐप को एक प्रबंधित प्रोफ़ाइल (प्रोफ़ाइल स्वामी) या एक प्रबंधित डिवाइस (डिवाइस स्वामी) का प्रावधान करने में सक्षम होना चाहिए, जिसमें आवश्यकता पड़ने पर डिवाइस/प्रोफ़ाइल स्वामी बनने के लिए उपयुक्त डिवाइस नीति क्लाइंट को डाउनलोड/इंस्टॉल करना भी शामिल है।
  • ऐप वैकल्पिक रूप से, डिवाइस नीति प्रबंधन के लिए उपयोग किए जाने वाले स्ट्रिंग्स, ड्रॉएबल्स जैसे संसाधनों को गतिशील रूप से अपडेट कर सकता है।
  • ऐप या तो पहले से इंस्टॉल किया गया सिस्टम ऐप हो सकता है या प्रावधान से पहले डाउनलोड और इंस्टॉल किया जा सकता है।
  • प्रोफ़ाइल स्वामी प्रावधान मामलों के लिए, जब भूमिका धारक ऐप किसी दिए गए एंड्रॉइड उपयोगकर्ता पर इंस्टॉल किया जाता है, तो इसे उस उपयोगकर्ता के लिए सभी लागू प्रोफाइल पर इंस्टॉल किया जाना चाहिए।
सिस्टम_एपीपी_प्रोटेक्शन_सेवा के सभी:
  • ऐप एक सिस्टम ऐप है।
  • ऐप का एकमात्र उद्देश्य संभावित रूप से हानिकारक ऐप्स (ऐसे ऐप्स जो उपयोगकर्ताओं, उपयोगकर्ता डेटा या उपकरणों को जोखिम में डाल सकते हैं जैसे ट्रोजन, फ़िशिंग और स्पाइवेयर ऐप्स) या मोबाइल अनवांटेड सॉफ़्टवेयर का पता लगाना है।
  • ऐप को एंड्रॉइड सीडीडी सेक्शन 9.8.6 कंटेंट कैप्चर में उल्लिखित सभी आवश्यकताओं को पूरा करना होगा।
  • इसे android.permission.INTERNET सामान्य अनुमति घोषित नहीं करनी चाहिए। इसके बजाय इसे एक ओपन सोर्स प्रोजेक्ट में अच्छी तरह से परिभाषित एपीआई के माध्यम से इंटरनेट तक पहुंच प्राप्त करनी होगी।
  • इसे निम्नलिखित सिस्टम ऐप्स को छोड़कर, ऐप्स से बाध्य नहीं होना चाहिए: अनुमति नियंत्रक, और इंटरनेट एपीआई प्रदान करने वाले घटक। प्रत्येक अनुमत बाइंडिंग को सिस्टम कॉन्फ़िगरेशन में <allow-association> कॉन्फ़िगरेशन के माध्यम से स्पष्ट रूप से सेट किया जाना चाहिए।
  • इसे ऐप्स के साथ डेटा साझा नहीं करना चाहिए जब तक कि कोई प्रत्यक्ष उपयोगकर्ता कार्रवाई न हो (उदाहरण के लिए, उपयोगकर्ता हर बार डेटा साझा करने पर स्पष्ट रूप से एक बटन दबाता है)।
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • उपयोगकर्ता के iOS या Android फ़ोन से कैलेंडर डेटा को Android Auto डिवाइस पर स्थानांतरित करना होगा। एंड्रॉइड ऑटो डिवाइस को इस कैलेंडर डेटा को कैलेंडर प्रदाता में संग्रहीत करना होगा।
  • ऐप को फोन पर एक यूआई घटक प्रदान करना होगा जिसका उपयोग उपयोगकर्ता कैलेंडर सिंक चालू करने और सिंक करने के लिए कैलेंडर का चयन करने के लिए कर सकता है। ऐप को फोन पर एक यूआई घटक प्रदान करना होगा जिसका उपयोग उपयोगकर्ता कैलेंडर सिंक को बंद करने के लिए कर सकता है।
  • इंटरनेट कनेक्शन के बिना काम करना चाहिए. उदाहरण के लिए, सीधे वायर्ड या वायरलेस कनेक्शन का उपयोग करके।
ऑटोमोटिव_नेविगेशन के सभी:
  • ऐप में एक गतिविधि है, जिसे ऐप्स अंतर्निहित इरादे के अनुरोधों के माध्यम से लागू कर सकते हैं, जो उपयोगकर्ता के वर्तमान स्थान और परिवेश को दिखाता है।
  • ऐप में एक गतिविधि है, जिसे ऐप्स अंतर्निहित इरादे के अनुरोधों के माध्यम से लागू कर सकते हैं, जो उपयोगकर्ता को एक निर्दिष्ट भू-स्थान पर नेविगेट करने की अनुमति देता है।
  • इसमें एक गतिविधि होती है जो ऐप के नेविगेशन फोकस रखने पर इंस्ट्रूमेंट क्लस्टर पर लॉन्च होती है। गतिविधि को उपयोगकर्ता का वर्तमान स्थान, परिवेश दिखाना चाहिए और उन्हें एक निर्दिष्ट भू-स्थान पर नेविगेट करने की अनुमति देनी चाहिए।
कंपेनियन_डिवाइस_कंप्यूटर के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • उपयोगकर्ताओं को सूचनाओं को मिरर करने और कनेक्टेड कंप्यूटर पर फ़ोन से फ़ोटो और मीडिया तक पहुंचने में सक्षम करें।
सिस्टम_सेटिंग्स_इंटेलिजेंस इनमें से कम से कम एक:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • एक ऐसी सेवा है जो सेटिंग्स ऐप के लिए सुझाव और खोज जैसी खुफिया सुविधाएं प्रदान करती है।
टिप्पणियाँ के सभी:
  • ऐप में एक गतिविधि है, जिसे ऐप्स अंतर्निहित इरादे के अनुरोधों के माध्यम से लागू कर सकते हैं। गतिविधि उपयोगकर्ता को एक नोट बनाने की अनुमति देती है, भले ही स्क्रीन लॉक हो या अनलॉक हो।
  • ऐप को एक ऐसी गतिविधि के द्वारा इसका समर्थन करना चाहिए जिसमें श्रेणी android.intent.category.DEFAULT के साथ android.intent.action.CREATE_NOTE के लिए एक इरादा फ़िल्टर हो। गतिविधि को अतिरिक्त android.intent.extra.USE_STYLUS_MODE आशय को भी उचित रूप से संभालना चाहिए।
  • ऐप में दोनों प्रकट विशेषताएँ showWhenLocked और turnScreenOn true पर सेट होनी चाहिए।
कंपेनियन_डिवाइस_ग्लास ऐप किसी ग्लास डिवाइस से जुड़ने और उसे प्रबंधित करने के लिए अनुरोध कर सकता है ( CompanionDeviceManager वर्ग द्वारा प्रदान की गई एपीआई का उपयोग करके)। एक बार जब चश्मा डिवाइस और ऐप सीडीएम द्वारा प्रदान किए गए यूआई का उपयोग करके कनेक्ट हो जाते हैं, तो उपयोगकर्ता संपर्कों तक पहुंच और सूचनाओं और फोन कॉल को प्रबंधित करने की अनुमति देकर अपने चश्मा डिवाइस को प्रबंधित कर सकते हैं।
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING के सभी:
  • ऐप एक सिस्टम ऐप है।
  • केवल ओईएम ही ऐप को यह भूमिका दे सकते हैं।
  • ऐप कनेक्टेड डिवाइसों के साथ संचार चैनल बना और प्रबंधित कर सकता है ताकि डिवाइस डेटा का आदान-प्रदान कर सकें। इन संचार चैनलों को स्थापित करने के लिए ऐप और कनेक्टेड डिवाइस को एक-दूसरे को सफलतापूर्वक प्रमाणित करना होगा (उदाहरण के लिए, साझा कुंजी के बारे में अपने ज्ञान को साबित करके)। संचार चैनलों में एन्क्रिप्शन सुरक्षा होनी चाहिए।
  • ऐप स्थानीय डिवाइस से कनेक्टेड डिवाइस पर नोटिफिकेशन भेज सकता है ताकि उपयोगकर्ता कनेक्टेड डिवाइस पर नोटिफिकेशन पर कार्रवाई कर सके।
  • ऐप स्ट्रीमिंग के लिए आवश्यक मेटाडेटा को कनेक्टेड डिवाइस पर स्ट्रीम करने में सक्षम हो, जैसे कि स्थानीय डिवाइस पर उपलब्ध एप्लिकेशन की सूची।
  • उपयोगकर्ता द्वारा स्पष्ट सहमति (या तो फोन पर या कनेक्टेड डिवाइस पर) के साथ ऐसा करने की इच्छा व्यक्त करने के बाद स्थानीय डिवाइस से कनेक्टेड डिवाइस पर एप्लिकेशन स्ट्रीम करने में सक्षम हो।
  • कनेक्टेड डिवाइस पर स्ट्रीम किए गए एप्लिकेशन पर होने वाली घटनाओं को स्थानीय डिवाइस पर दोबारा चलाने (इंजेक्ट) करने में सक्षम हो। उदाहरण के लिए, टैबलेट पर किसी टच इवेंट को फोन के समान निर्देशांक पर दोबारा चलाना, या ग्लास डिवाइस पर घटित इनपुट इवेंट को फोन के समान इनपुट सिमेंटिक्स के साथ दोबारा चलाना।
  • ऐप स्थानीय डिवाइस के माइक्रोफ़ोन स्ट्रीम को कनेक्टेड डिवाइस के माइक्रोफ़ोन स्ट्रीम से बदल सकता है जबकि स्ट्रीम किया गया ऐप माइक्रोफ़ोन का उपयोग कर रहा है।
  • ऐप डिवाइस से ऑडियो कैप्चर करता है और उसे कनेक्टेड डिवाइस पर स्ट्रीम करता है।
  • कनेक्टेड डिवाइस OS बिल्ड की अखंडता को सत्यापित करना होगा (उदाहरण के लिए, VerifiedBootState में डिवाइस सत्यापन का उपयोग करके)।
  • केवल उन्हीं ऐप्स को स्ट्रीम करें जहां दोनों डिवाइस पर ऑन-डिवाइस अकाउंट रजिस्ट्री (उदाहरण के लिए, एंड्रॉइड पर अकाउंट मैनेजर ) में केवल एक मेल खाने वाला खाता है। यदि यह मामला नहीं है, तो स्ट्रीमिंग को स्रोत डिवाइस पर दिखाए गए एक बार कोड के साथ अधिकृत किया जाना चाहिए और कनेक्टेड डिवाइस पर दर्ज किया जाना चाहिए। ध्यान दें कि उन डिवाइसों के मामले में जो एंड्रॉइड मल्टी-यूज़र की तरह समान गारंटीकृत डेटा अलगाव के साथ मल्टी उपयोगकर्ताओं (और मल्टी अकाउंट्स नहीं) का समर्थन करते हैं, एक उपयोगकर्ता को एक डिवाइस के रूप में गिना जाता है।
  • यदि कनेक्टेड डिवाइस पर खाते का प्रमाणीकरण समाप्त हो जाता है या रद्द कर दिया जाता है, तो तुरंत स्ट्रीमिंग बंद कर देनी चाहिए और कनेक्टेड डिवाइस से डिस्कनेक्ट हो जाना चाहिए।
  • यदि स्रोत डिवाइस लॉकस्क्रीन नॉलेज फैक्टर (एलएसकेएफ) का उपयोग करता है, तो स्क्रीन लॉक होने पर, ऐप को किसी कनेक्टेड डिवाइस पर एप्लिकेशन स्ट्रीम नहीं करना चाहिए, जब तक कि उस डिवाइस में लॉक स्क्रीन न हो और वह अनलॉक न हो।
  • यदि डिवाइस को व्यवस्थापक द्वारा प्रबंधित किया जाता है, तो ऐप को आस-पास के डिवाइस पर स्ट्रीमिंग को सक्षम या अक्षम करने के बारे में व्यवस्थापक द्वारा निर्धारित नीतियों का सम्मान करना चाहिए (उदाहरण के लिए, एंड्रॉइड में डिवाइसपॉलिसीमैनेजर सेटिंग्स का उपयोग करना)।
  • यह सुनिश्चित करना चाहिए कि रिमोट डिस्प्ले और रिमोट इनपुट इवेंट के सभी स्रोत उपयोगकर्ता के दृष्टिकोण से एक ही तार्किक डिवाइस (उदाहरण के लिए, एक रिमोट डिस्प्ले और एक कनेक्टेड कीबोर्ड) से संबंधित हैं और इवेंट तदनुसार रूट किए गए हैं।
  • उपयोगकर्ता को स्थानीय डिवाइस से स्ट्रीमिंग समाप्त करने में सक्षम होना चाहिए, उदाहरण के लिए, लगातार अधिसूचना में एक बटन का उपयोग करके। यदि फ़ोन में स्क्रीन लॉक सेट है तो यह व्यवहार लॉकस्क्रीन द्वारा गेट किया जाता है।
  • जब स्ट्रीमिंग किसी अन्य डिवाइस पर हो रही हो, जैसे स्टेटस बार में एक आइकन या लगातार अधिसूचना, तो स्रोत डिवाइस पर एक खर्च दिखाना होगा।