एकाधिक उपयोगकर्ताओं का समर्थन करें

एंड्रॉइड उपयोगकर्ता खातों और एप्लिकेशन डेटा को अलग करके एक ही एंड्रॉइड डिवाइस पर एकाधिक उपयोगकर्ताओं का समर्थन करता है। उदाहरण के लिए, माता-पिता अपने बच्चों को पारिवारिक टैबलेट का उपयोग करने की अनुमति दे सकते हैं, एक परिवार एक ऑटोमोबाइल साझा कर सकता है, या एक महत्वपूर्ण प्रतिक्रिया टीम ऑन-कॉल ड्यूटी के लिए एक मोबाइल डिवाइस साझा कर सकती है।

शब्दावली

एंड्रॉइड उपयोगकर्ताओं और खातों का वर्णन करते समय एंड्रॉइड निम्नलिखित शब्दों का उपयोग करता है।

सामान्य

Android डिवाइस प्रबंधन निम्नलिखित सामान्य शब्दों का उपयोग करता है:

  • उपयोगकर्ता: प्रत्येक उपयोगकर्ता का उपयोग एक अलग भौतिक व्यक्ति द्वारा किया जाना है। प्रत्येक उपयोगकर्ता के पास अलग-अलग एप्लिकेशन डेटा और कुछ अनूठी सेटिंग्स होती हैं, साथ ही उपयोगकर्ताओं के बीच स्पष्ट रूप से स्विच करने के लिए एक यूजर इंटरफ़ेस भी होता है। जब कोई अन्य उपयोगकर्ता सक्रिय हो तो एक उपयोगकर्ता पृष्ठभूमि में चल सकता है; सिस्टम उपयुक्त होने पर संसाधनों को संरक्षित करने के लिए उपयोगकर्ताओं को बंद करने का प्रबंधन करता है। द्वितीयक उपयोगकर्ता या तो सीधे उपयोगकर्ता इंटरफ़ेस के माध्यम से या डिवाइस एडमिनिस्ट्रेशन एप्लिकेशन से बनाए जा सकते हैं।
  • खाता: खाते एक उपयोगकर्ता के भीतर समाहित होते हैं लेकिन किसी उपयोगकर्ता द्वारा परिभाषित नहीं होते हैं, न ही कोई उपयोगकर्ता किसी दिए गए खाते से परिभाषित होता है या उससे जुड़ा होता है। उपयोगकर्ताओं और प्रोफ़ाइलों में उनके अपने विशिष्ट खाते होते हैं, लेकिन कार्यशील रहने के लिए खातों का होना आवश्यक नहीं है। खातों की सूची उपयोगकर्ता के अनुसार भिन्न होती है. विवरण के लिए, खाता वर्ग परिभाषा देखें।
  • प्रोफ़ाइल: प्रोफ़ाइल ने ऐप डेटा को अलग कर दिया है लेकिन कुछ सिस्टम-वाइड सेटिंग्स साझा करता है (उदाहरण के लिए, वाई-फ़ाई और ब्लूटूथ)। प्रोफ़ाइल उपयोगकर्ता के अस्तित्व का एक उपसमूह है और उससे जुड़ा हुआ है। एक उपयोगकर्ता के पास एकाधिक प्रोफ़ाइल हो सकती हैं. प्रोफ़ाइल डिवाइस एडमिनिस्ट्रेशन एप्लिकेशन के माध्यम से बनाई जाती हैं। एक प्रोफ़ाइल में हमेशा मूल उपयोगकर्ता के साथ एक अपरिवर्तनीय जुड़ाव होता है, जो प्रोफ़ाइल बनाने वाले उपयोगकर्ता द्वारा परिभाषित होता है। प्रोफ़ाइल बनाने वाले उपयोगकर्ता के जीवनकाल के बाद मौजूद नहीं होती हैं।
  • ऐप: प्रत्येक संबद्ध उपयोगकर्ता के भीतर एक एप्लिकेशन का डेटा मौजूद होता है। ऐप डेटा को उसी उपयोगकर्ता के अन्य एप्लिकेशन से सैंडबॉक्स किया जाता है। एक ही उपयोगकर्ता के ऐप्स आईपीसी के माध्यम से एक-दूसरे के साथ बातचीत कर सकते हैं। विवरण के लिए, एंटरप्राइज़ के लिए Android देखें।

उपयोगकर्ताओं की श्रेणियाँ

एंड्रॉइड डिवाइस प्रशासन उपयोगकर्ताओं की निम्नलिखित श्रेणियों का उपयोग करता है।

  • सिस्टम उपयोगकर्ता: किसी डिवाइस में जोड़ा गया पहला उपयोगकर्ता। फ़ैक्टरी रीसेट के अलावा सिस्टम उपयोगकर्ता को हटाया नहीं जा सकता है और यह हमेशा तब भी चलता रहता है जब अन्य उपयोगकर्ता अग्रभूमि में होते हैं। इस उपयोगकर्ता के पास विशेष विशेषाधिकार और सेटिंग्स भी हैं जिन्हें केवल वह सेट कर सकता है।
  • हेडलेस सिस्टम उपयोगकर्ता: यदि डिवाइस को हेडलेस सिस्टम उपयोगकर्ता मोड में चलाने के लिए कॉन्फ़िगर किया गया है ( ro.fw.mu.headless_system_user=true सेट करके) तो डिवाइस में पहला उपयोगकर्ता जोड़ा गया है। हेडलेस सिस्टम उपयोगकर्ता हमेशा पृष्ठभूमि में चलता है, इसलिए ऐसे उपकरणों को उपयोगकर्ता इंटरैक्शन को सक्षम करने के लिए अतिरिक्त अग्रभूमि उपयोगकर्ताओं की आवश्यकता होती है।
  • द्वितीयक उपयोगकर्ता: सिस्टम उपयोगकर्ता के अलावा डिवाइस में जोड़ा गया कोई भी उपयोगकर्ता। द्वितीयक उपयोगकर्ताओं को हटाया जा सकता है (या तो स्वयं या किसी व्यवस्थापक उपयोगकर्ता द्वारा) और वे डिवाइस पर अन्य उपयोगकर्ताओं को प्रभावित नहीं कर सकते। ये उपयोगकर्ता पृष्ठभूमि में चल सकते हैं और नेटवर्क कनेक्टिविटी जारी रख सकते हैं।
  • अतिथि उपयोगकर्ता: अस्थायी द्वितीयक उपयोगकर्ता. अतिथि उपयोगकर्ताओं के पास इसकी उपयोगिता समाप्त होने पर अतिथि उपयोगकर्ता को तुरंत हटाने का स्पष्ट विकल्प होता है। एक समय में केवल एक ही अतिथि उपयोगकर्ता हो सकता है।
  • व्यवस्थापक उपयोगकर्ता: एक उपयोगकर्ता जिसके पास अन्य उपयोगकर्ताओं को बनाने और हटाने की अनुमति है, साथ ही कुछ सामान्य बहु-उपयोगकर्ता सेटिंग्स को नियंत्रित करने की भी अनुमति है। डिफ़ॉल्ट रूप से, केवल सिस्टम उपयोगकर्ता ही व्यवस्थापक होता है.

प्रोफाइल की श्रेणियाँ

Android प्रोफ़ाइल की निम्नलिखित श्रेणियों का उपयोग करता है:

  • प्रबंधित प्रोफ़ाइल: कार्य डेटा और ऐप्स को शामिल करने के लिए एक एप्लिकेशन द्वारा बनाया गया। उन्हें विशेष रूप से प्रोफ़ाइल स्वामी (ऐप जिसने कॉर्प प्रोफ़ाइल बनाई है) द्वारा प्रबंधित किया जाता है। लॉन्चर, सूचनाएं और हाल के कार्य मूल उपयोगकर्ता और कॉर्प प्रोफ़ाइल द्वारा साझा किए जाते हैं।
  • प्रतिबंधित प्रोफ़ाइल: मूल उपयोगकर्ता के आधार पर खातों का उपयोग करता है, जो नियंत्रित कर सकता है कि प्रतिबंधित प्रोफ़ाइल पर कौन से ऐप्स उपलब्ध हैं। केवल टेबलेट और टेलीविज़न उपकरणों पर उपलब्ध है।
  • क्लोन प्रोफ़ाइल: एंड्रॉइड डिवाइस पर एक ही ऐप के दो इंस्टेंस को चलाने में सक्षम करने के लिए एक अलग क्लोन प्रोफ़ाइल उपयोगकर्ता प्रकार के निर्माण का समर्थन करता है। AOSP सुविधा के लिए संपूर्ण समर्थन प्रदान नहीं करता है। एंड्रॉइड उपयोगकर्ताओं को संपूर्ण सुविधा प्रदान करने के लिए ओईएम को अनुकूलन जोड़ने की आवश्यकता है।

उपयोगकर्ता प्रकार

एंड्रॉइड 11 ने उपयोगकर्ताओं और प्रोफाइलों के उपरोक्त वर्गीकरण को अच्छी तरह से परिभाषित उपयोगकर्ता प्रकारों में तैयार किया है, जो एंड्रॉइड मल्टी-यूजर सुविधा द्वारा अनुमत सभी विभिन्न प्रकार के उपयोगकर्ताओं और प्रोफाइलों का प्रतिनिधित्व करता है।

पूर्व-निर्धारित एओएसपी उपयोगकर्ता प्रकार frameworks/base/core/java/android/os/UserManager.java में परिभाषित हैं और वर्तमान में इसमें शामिल हैं:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS
  • android.os.usertype.profile.CLONE

ओईएम के पास frameworks/base/core/res/res/xml/config_user_types.xml फ़ाइल को ओवरले करके इन उपयोगकर्ता प्रकारों को कॉन्फ़िगर करने की क्षमता है। यह प्रत्येक उपयोगकर्ता प्रकार के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन को बदलने की सुविधा देता है, जिसमें उसके डिफ़ॉल्ट प्रतिबंध, आइकन, बैज और उपयोगकर्ताओं की अधिकतम अनुमत संख्या शामिल है।

कॉन्फ़िगर करने योग्य AOSP उपयोगकर्ता प्रकारों के अलावा, OEM frameworks/base/core/res/res/xml/config_user_types.xml फ़ाइल का उपयोग करके नए प्रोफ़ाइल प्रकारों को परिभाषित कर सकते हैं। यह ओईएम को यदि वांछित हो तो अपने स्वयं के गैर-प्रबंधित प्रोफ़ाइल प्रकार पेश करने की अनुमति देता है। हालाँकि, परिवर्तनों का समर्थन करने के लिए आवश्यकतानुसार प्लेटफ़ॉर्म संशोधन करना ओईएम की ज़िम्मेदारी है, जिसमें प्रबंधित प्रोफ़ाइल की जांच करने वाले किसी भी कोड को संशोधित करना शामिल है ताकि अब यदि उपयुक्त हो तो नए प्रोफ़ाइल प्रकार को संभाल सके।

बहु-उपयोगकर्ता को सक्षम करना

बहु-उपयोगकर्ता सुविधा डिफ़ॉल्ट रूप से अक्षम है. सुविधा को सक्षम करने के लिए, डिवाइस निर्माताओं को एक संसाधन ओवरले को परिभाषित करना होगा जो frameworks/base/core/res/res/values/config.xml में निम्नलिखित मानों को प्रतिस्थापित करता है:

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

इस ओवरले को लागू करने और डिवाइस पर अतिथि और द्वितीयक उपयोगकर्ताओं को सक्षम करने के लिए, मानों को बदलने के लिए एंड्रॉइड बिल्ड सिस्टम की DEVICE_PACKAGE_OVERLAYS सुविधा का उपयोग करें:

  • config_multiuserMaximumUsers जिसका मान 1 से अधिक है
  • true के साथ config_enableMultiUserUI

डिवाइस निर्माता उपयोगकर्ताओं की अधिकतम संख्या तय कर सकते हैं। यदि डिवाइस निर्माताओं या अन्य ने सेटिंग्स संशोधित की हैं, तो उन्हें एंड्रॉइड संगतता परिभाषा दस्तावेज़ (सीडीडी) में परिभाषित अनुसार एसएमएस और टेलीफोनी कार्य सुनिश्चित करना होगा।

एकाधिक उपयोगकर्ताओं को प्रबंधित करना

उपयोगकर्ताओं और प्रोफ़ाइलों का प्रबंधन (प्रतिबंधित प्रोफ़ाइलों के अपवाद के साथ) उन अनुप्रयोगों द्वारा किया जाता है जो उपयोग को प्रतिबंधित करने के लिए प्रोग्रामेटिक रूप से DevicePolicyManager क्लास में एपीआई को आमंत्रित करते हैं।

उद्यम अपने उपयोग के मामलों के अनुरूप अद्वितीय समाधान बनाने के लिए डिवाइसपॉलिसीमैनेजर और यूजरमैनेजर एपीआई के साथ संयोजन में ऊपर उल्लिखित प्रकारों का उपयोग करके डिवाइस पर ऐप्स और डेटा के जीवनकाल और दायरे को प्रबंधित करने के लिए उपयोगकर्ताओं और प्रोफाइल को नियोजित कर सकते हैं।

बहु-उपयोगकर्ता सिस्टम व्यवहार

जब उपयोगकर्ताओं को किसी डिवाइस में जोड़ा जाता है, तो किसी अन्य उपयोगकर्ता के अग्रभूमि में होने पर कुछ कार्यक्षमता कम हो जाती है। चूंकि ऐप डेटा उपयोगकर्ता द्वारा अलग किया जाता है, इसलिए उन ऐप्स की स्थिति उपयोगकर्ता के अनुसार भिन्न होती है। उदाहरण के लिए, किसी ऐसे उपयोगकर्ता के खाते के लिए भेजा गया ईमेल जो वर्तमान में फोकस में नहीं है, तब तक उपलब्ध नहीं होगा जब तक कि वह उपयोगकर्ता और खाता डिवाइस पर सक्रिय न हो।

नोट : द्वितीयक उपयोगकर्ता के लिए फ़ोन और एसएमएस फ़ंक्शन को सक्षम या अक्षम करने के लिए, सेटिंग्स > उपयोगकर्ता पर जाएं, उपयोगकर्ता का चयन करें, और फ़ोन कॉल और एसएमएस की अनुमति दें सेटिंग को बंद कर दें।

जब कोई द्वितीयक उपयोगकर्ता पृष्ठभूमि में होता है तो कुछ प्रतिबंध मौजूद होते हैं। उदाहरण के लिए, पृष्ठभूमि द्वितीयक उपयोगकर्ता उपयोगकर्ता इंटरफ़ेस प्रदर्शित नहीं कर सकता है या ब्लूटूथ सेवाओं को सक्रिय नहीं कर सकता है। इसके अलावा, यदि डिवाइस को अग्रभूमि उपयोगकर्ता में संचालन के लिए अतिरिक्त मेमोरी की आवश्यकता होती है, तो सिस्टम प्रक्रिया पृष्ठभूमि माध्यमिक उपयोगकर्ताओं को रोक देगी।

एंड्रॉइड डिवाइस पर एकाधिक उपयोगकर्ताओं को नियोजित करते समय, निम्नलिखित व्यवहार को ध्यान में रखें:

  • एक ही उपयोगकर्ता के सभी खातों के लिए सूचनाएं एक साथ दिखाई देती हैं।
  • अन्य उपयोगकर्ताओं के लिए सूचनाएं सक्रिय होने तक प्रकट नहीं होती हैं।
  • प्रत्येक उपयोगकर्ता को ऐप्स इंस्टॉल करने और रखने के लिए एक कार्यक्षेत्र मिलता है।
  • किसी भी उपयोगकर्ता के पास दूसरे उपयोगकर्ता के ऐप डेटा तक पहुंच नहीं है।
  • कोई भी उपयोगकर्ता सभी उपयोगकर्ताओं के लिए इंस्टॉल किए गए ऐप्स को प्रभावित कर सकता है।
  • एक व्यवस्थापक उपयोगकर्ता ऐप्स या यहां तक ​​कि द्वितीयक उपयोगकर्ताओं द्वारा स्थापित संपूर्ण कार्यक्षेत्र को हटा सकता है।
  • डिफ़ॉल्ट रूप से, अतिथि मोड से बाहर निकलने पर अतिथि उपयोगकर्ता सत्र की जानकारी बनी नहीं रहती है। यदि आप चाहते हैं कि अतिथि उपयोगकर्ता सत्र से जानकारी बनी रहे, तो आपको एक संसाधन ओवरले फ़ाइल बनानी होगी जो config_guestUserAllowEphemeralStateChange को false पर सेट करती है। ओवरले फ़ाइलें बनाने के बारे में अधिक जानकारी के लिए, संसाधन ओवरले के साथ बिल्ड को अनुकूलित करना देखें।

एंड्रॉइड ऑटोमोटिव बहु-उपयोगकर्ता

साझा डिवाइस अनुभव प्रदान करने के लिए एंड्रॉइड ऑटोमोटिव एंड्रॉइड के बहु-उपयोगकर्ता कार्यान्वयन पर निर्भर करता है।

ऑटोमोटिव उपयोगकर्ता प्रकार

ऊपर सूचीबद्ध उपयोगकर्ता प्रकारों के अलावा, ऑटोमोटिव बिल्ड इस प्रकार के उपयोगकर्ताओं के लिए उल्लेखनीय हैं:

  • बिना नेतृत्व वाला सिस्टम उपयोगकर्ता. सिस्टम उपयोगकर्ता सभी सिस्टम सेवाओं को होस्ट करता है। ऑटोमोटिव पर एकाधिक उपयोगकर्ताओं का समर्थन करने के लिए, सिस्टम उपयोगकर्ता को भी नेतृत्वहीन होना चाहिए। केवल एक ही बिना सिर वाला उपयोगकर्ता है. एक नेतृत्वहीन सिस्टम उपयोगकर्ता:
    • हमेशा पृष्ठभूमि में चलना चाहिए.
    • डिवाइस प्रोविज़निंग के मामले को छोड़कर इसे उपयोगकर्ता द्वारा सीधे हटाया या एक्सेस नहीं किया जा सकता है। उदाहरण के लिए, उपयोगकर्ता ऐप्स डाउनलोड करने या खाते जोड़ने जैसे कार्य करने के लिए इस उपयोगकर्ता प्रकार पर स्विच नहीं कर सकते हैं।
    • इसे केवल फ़ैक्टरी रीसेट द्वारा ही साफ़ किया जा सकता है।
  • नियमित उपयोगकर्ता. ऊपर वर्णित द्वितीयक उपयोगकर्ताओं के समान, सिवाय इसके कि द्वितीयक उपयोगकर्ता:
    • पृष्ठभूमि में न चलाएं (बंद कर दिए जाने के बाद)।
    • सीधे यूजर इंटरफ़ेस के माध्यम से बनाया जा सकता है।
    • ऐप डेटा को अलग कर दिया है लेकिन कुछ सिस्टम-व्यापी सेटिंग्स साझा करें। उदाहरण के लिए, वाई-फाई और ब्लूटूथ।

चेतावनियां

निम्नलिखित अपवाद ऑटोमोटिव में हेडलेस सिस्टम उपयोगकर्ता और नियमित (द्वितीयक) उपयोगकर्ताओं पर लागू होते हैं:

  • हेडलेस सिस्टम उपयोगकर्ता कार्य प्रोफ़ाइल का समर्थन नहीं करता है.
  • डिफ़ॉल्ट रूप से, नियमित (द्वितीयक) उपयोगकर्ताओं के पास फ़ोन कॉल और टेक्स्ट तक पूर्ण पहुंच होती है।
  • डिफ़ॉल्ट रूप से, नियमित (द्वितीयक) उपयोगकर्ता पृष्ठभूमि में नहीं चलते हैं।

हेडलेस सिस्टम उपयोगकर्ता को सक्षम करना

एंड्रॉइड 10 के अनुसार, बहु-उपयोगकर्ता सुविधा का उपयोग ऑटोमोटिव उपयोग के मामलों के लिए किया जा सकता है। महत्वपूर्ण भेदों में शामिल हैं:

  • सिस्टम उपयोगकर्ता नेतृत्वहीन है और केवल पृष्ठभूमि में चलता है।
  • मानव उपयोगकर्ता सिस्टम उपयोगकर्ता के साथ बातचीत नहीं करते हैं।

हेडलेस सिस्टम उपयोगकर्ता को सक्षम करने के लिए, डिवाइस निर्माताओं को ऊपर वर्णित अनुसार बहु-उपयोगकर्ता को सक्षम करना होगा।

जब हेडलेस उपयोगकर्ता सक्षम हो:
  1. डिवाइस को ऑटोमोटिव घोषित करने के लिए, android.hardware.type.automotive सुविधा जोड़ें।
  2. ro.fw.headless_system_user को true पर सेट करें।
  3. config_multiuserMaximumUsers के लिए मान को 2 (या उच्चतर) पर सेट करें।

अधिक जानकारी के लिए, ऑटोमोटिव में बहु-उपयोगकर्ता सहायता देखें।

एकाधिक डिस्प्ले पर एंड्रॉइड ऑटोमोटिव बहु-उपयोगकर्ता

एंड्रॉइड 14 में एक नई प्रयोगात्मक सुविधा पूर्ण माध्यमिक उपयोगकर्ताओं (जो वर्तमान अग्रभूमि उपयोगकर्ता नहीं हैं) को गतिविधियों को लॉन्च करने और डिस्प्ले पर यूआई तक पहुंच प्राप्त करने की अनुमति देती है जिसके लिए उन्हें सौंपा गया है। यह सुविधा एंड्रॉइड ऑटोमोटिव ओएस में कई समवर्ती उपयोगकर्ताओं को इन-कार अनुभवों का समर्थन करने में सक्षम बनाती है जो एक ही एंड्रॉइड इंस्टेंस में कई यात्रियों को समर्पित यूआई अनुभव प्रदान करती है।

विकास के उपयोग के लिए इस सुविधा को सक्षम करने के लिए, डिवाइस निर्माताओं को frameworks/base/core/res/res/values/config.xml में निम्नलिखित मान को बदलने के लिए एक संसाधन ओवरले को परिभाषित करना होगा:

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

<bool name="config_multiuserVisibleBackgroundUsers">false></bool>

आप निम्नलिखित अतिरिक्त कॉन्फ़िगरेशन को सक्षम करके केवल यात्री (कोई ड्राइवर नहीं) अनुभव के साथ प्रयोग कर सकते हैं:

<!-- Whether the device allows users to start in background visible on the default display.
    Should be false for all devices in production. Can be enabled only for development use
    in passenger-only automotive build (i.e., when Android runs in a separate system in the
    back seat to manage the passenger displays).
    When set to true, config_multiuserVisibleBackgroundUsers must also be true. -->

<bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>

एंड्रॉइड 14 में, आप अतिथि उपयोगकर्ताओं के रूप में कई यात्रियों के लिए कार में अनुभव को सक्षम कर सकते हैं। विकास के उपयोग के लिए एकाधिक अतिथि उपयोगकर्ताओं को सक्षम करने के लिए, डिवाइस निर्माताओं को एक संसाधन ओवरले को परिभाषित करना होगा जो नीचे दिए गए उदाहरण की तरह frameworks/base/core/res/res/xml/config_user_types.xml में अतिथि उपयोगकर्ताओं की अधिकतम अनुमत संख्या को कॉन्फ़िगर करता है:

<user-types>
   <full-type
       name="android.os.usertype.full.GUEST"
       max-allowed='4'>
       <default-restrictions no_factory_reset="true"
           no_remove_user="true"
           no_modify_accounts="true"
           no_install_apps="true"
           no_install_unknown_sources="true"
           no_uninstall_apps="true"/>
   </full-type>
</user-types>