پشتیبانی از چندین کاربر

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

اندروید با جداسازی حساب‌های کاربری و داده‌های برنامه، از چندین کاربر در یک دستگاه اندروید پشتیبانی می‌کند. به عنوان مثال، والدین ممکن است به فرزندان خود اجازه دهند تا از تبلت خانوادگی استفاده کنند، یک خانواده می تواند یک اتومبیل مشترک داشته باشد، یا یک تیم پاسخگو ممکن است یک دستگاه تلفن همراه را برای انجام وظیفه به اشتراک بگذارد.

واژه شناسی

اندروید هنگام توصیف کاربران و حساب‌های اندروید از عبارات زیر استفاده می‌کند.

عمومی

مدیریت دستگاه اندروید از اصطلاحات کلی زیر استفاده می کند.

  • کاربر . هر کاربر برای استفاده توسط یک شخص فیزیکی متفاوت در نظر گرفته شده است. هر کاربر دارای داده های برنامه متمایز و برخی تنظیمات منحصر به فرد، و همچنین یک رابط کاربری برای جابجایی صریح بین کاربران است. وقتی کاربر دیگری فعال است، کاربر می تواند در پس زمینه اجرا شود. سیستم مدیریت خاموش کردن کاربران را برای حفظ منابع در صورت لزوم مدیریت می کند. کاربران ثانویه را می توان مستقیماً از طریق رابط کاربری یا از یک برنامه مدیریت دستگاه ایجاد کرد .
  • حساب کاربری حساب‌ها در داخل یک کاربر قرار می‌گیرند، اما توسط یک کاربر تعریف نمی‌شوند، و همچنین یک کاربر توسط حساب خاصی تعریف نشده یا به آن پیوند داده شده است. کاربران و نمایه‌ها دارای حساب‌های منحصربه‌فرد خود هستند، اما برای کاربردی بودن نیازی به داشتن حساب ندارند. لیست حساب ها بر اساس کاربر متفاوت است. برای جزئیات، به تعریف کلاس حساب مراجعه کنید.
  • نمایه نمایه داده‌های برنامه را جدا کرده است، اما برخی تنظیمات سیستم را به اشتراک می‌گذارد (مثلاً Wi-Fi و بلوتوث). پروفایل زیرمجموعه ای از وجود یک کاربر است و به آن گره خورده است. یک کاربر می تواند چندین پروفایل داشته باشد. نمایه ها از طریق یک برنامه مدیریت دستگاه ایجاد می شوند. یک نمایه همیشه یک ارتباط تغییرناپذیر با یک کاربر والد دارد که توسط کاربری که نمایه را ایجاد کرده است تعریف می شود. نمایه ها بیش از طول عمر کاربر ایجاد کننده وجود ندارند.
  • برنامه داده های یک برنامه در هر کاربر مرتبط وجود دارد. داده‌های برنامه از سایر برنامه‌های درون همان کاربر جعبه‌بندی می‌شوند. برنامه های داخل یک کاربر می توانند از طریق IPC با یکدیگر تعامل داشته باشند. برای جزئیات، به Android برای سازمانی مراجعه کنید.

دسته بندی کاربران

مدیریت دستگاه اندروید از دسته بندی کاربران زیر استفاده می کند.

  • کاربر سیستم اولین کاربر اضافه شده به دستگاه کاربر سیستم را نمی توان حذف کرد مگر با تنظیم مجدد کارخانه و همیشه در حال اجرا است حتی زمانی که سایر کاربران در پیش زمینه هستند. این کاربر همچنین دارای امتیازات و تنظیمات ویژه ای است که فقط می تواند تنظیم کند.
  • کاربر ثانویه هر کاربری غیر از کاربر سیستم به دستگاه اضافه شود. کاربران ثانویه را می توان حذف کرد (چه توسط خودشان یا توسط یک کاربر سرپرست) و نمی توانند روی سایر کاربران دستگاه تأثیر بگذارند. این کاربران می‌توانند در پس‌زمینه اجرا شوند و به اتصال شبکه ادامه دهند.
  • کاربر مهمان . کاربر ثانویه موقت کاربران مهمان یک گزینه صریح برای حذف سریع کاربر مهمان پس از پایان مفید بودن آن دارند. در هر زمان فقط یک کاربر مهمان می تواند وجود داشته باشد.
  • کاربر ادمین . کاربری که اجازه ایجاد و حذف سایر کاربران و همچنین کنترل برخی تنظیمات کلی چند کاربر را دارد. به طور پیش فرض، فقط کاربر سیستم یک ادمین است.

دسته بندی پروفایل ها

مدیریت دستگاه اندروید از دسته بندی های زیر استفاده می کند.

  • نمایه مدیریت شده ایجاد شده توسط یک برنامه کاربردی برای حاوی داده های کاری و برنامه ها. آنها منحصراً توسط مالک نمایه (برنامه ای که نمایه شرکت را ایجاد کرده است) مدیریت می شوند. راه‌انداز، اعلان‌ها و وظایف اخیر توسط کاربر اصلی و نمایه شرکت به اشتراک گذاشته می‌شود.
  • نمایه محدود از حساب‌های مبتنی بر کاربر والد استفاده می‌کند، که می‌تواند برنامه‌هایی را که در نمایه محدود در دسترس هستند، کنترل کند. فقط در تبلت ها و دستگاه های تلویزیونی موجود است.

انواع کاربر

اندروید 11 طبقه‌بندی بالا از کاربران و نمایه‌ها را به انواع کاربری کاملاً تعریف‌شده فرموله کرده است که نشان‌دهنده همه انواع مختلف کاربران و نمایه‌های مجاز توسط ویژگی چند کاربر اندروید است.

انواع از پیش تعریف شده کاربر AOSP در 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

OEM ها توانایی پیکربندی این نوع کاربری را با همپوشانی فایل frameworks/base/core/res/res/xml/config_user_types.xml . این تغییر پیکربندی پیش‌فرض برای هر نوع کاربر، از جمله محدودیت‌های پیش‌فرض، نمادها، نشان‌ها و حداکثر تعداد مجاز کاربران را تسهیل می‌کند.

علاوه بر انواع کاربر AOSP قابل تنظیم، OEM ها می توانند انواع پروفایل های جدید را با استفاده از فایل frameworks/base/core/res/res/xml/config_user_types.xml تعریف کنند. این به OEM ها اجازه می دهد تا در صورت تمایل انواع پروفایل های مدیریت نشده خود را معرفی کنند. با این حال، این مسئولیت OEM است که برای پشتیبانی از تغییرات، تغییرات پلتفرم را بر اساس نیاز انجام دهد، از جمله اصلاح هر کدی که نمایه های مدیریت شده را بررسی می کند تا اکنون در صورت لزوم، نوع نمایه جدید را کنترل کند.

فعال کردن چند کاربر

از اندروید 5.0، ویژگی چند کاربره به طور پیش‌فرض غیرفعال است. برای فعال کردن این ویژگی، سازندگان دستگاه باید یک پوشش منبع تعریف کنند که جایگزین مقادیر زیر در 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 سیستم ساخت Android استفاده کنید تا مقادیر زیر را جایگزین کنید:

  • config_multiuserMaximumUsers با مقدار بیشتر از 1
  • config_enableMultiUserUI با true

سازندگان دستگاه ممکن است در مورد حداکثر تعداد کاربران تصمیم بگیرند. اگر سازندگان دستگاه یا سایرین تنظیمات را تغییر داده‌اند، باید مطمئن شوند که پیامک و تلفن مطابق با سند تعریف سازگاری Android (CDD) کار می‌کنند.

مدیریت چندین کاربر

مدیریت کاربران و پروفایل ها (به استثنای پروفایل های محدود شده) توسط برنامه هایی انجام می شود که به صورت برنامه نویسی API را در کلاس DevicePolicyManager فراخوانی می کنند تا استفاده را محدود کنند.

مدارس و شرکت‌ها ممکن است از کاربران و نمایه‌ها برای مدیریت طول عمر و دامنه برنامه‌ها و داده‌ها در دستگاه‌ها استفاده کنند، با استفاده از انواع ذکر شده در بالا در ارتباط با UserManager API برای ایجاد راه‌حل‌های منحصربه‌فرد متناسب با موارد استفاده آن‌ها.

رفتار سیستم چند کاربره

هنگامی که کاربران به یک دستگاه اضافه می شوند، زمانی که کاربر دیگری در پیش زمینه باشد، برخی از عملکردها کاهش می یابد. از آنجایی که داده های برنامه توسط کاربر جدا می شود، وضعیت آن برنامه ها بر اساس کاربر متفاوت است. برای مثال، ایمیلی که برای حساب کاربری که در حال حاضر در کانون توجه نیست، در دسترس نخواهد بود تا زمانی که آن کاربر و حساب در دستگاه فعال باشند.

به طور پیش فرض، فقط کاربر سیستم به تماس های تلفنی و پیامک دسترسی کامل دارد. کاربر ثانویه ممکن است تماس های ورودی دریافت کند اما نمی تواند پیامک ارسال یا دریافت کند. یک کاربر مدیر باید این توابع را برای دیگران فعال کند.

توجه : برای فعال یا غیرفعال کردن عملکردهای تلفن و پیامک برای یک کاربر ثانویه، به تنظیمات > کاربران بروید ، کاربر را انتخاب کنید و تنظیمات مجاز به تماس تلفنی و پیامک را خاموش کنید.

زمانی که کاربر ثانویه در پس‌زمینه باشد، برخی محدودیت‌ها وجود دارد. برای مثال، کاربر ثانویه پس‌زمینه نمی‌تواند رابط کاربری را نمایش دهد یا خدمات بلوتوث را فعال کند. علاوه بر این، اگر دستگاه به حافظه اضافی برای عملیات در کاربر پیش زمینه نیاز داشته باشد، فرآیند سیستم کاربران ثانویه پس زمینه را متوقف می کند.

هنگام استفاده از چندین کاربر در یک دستگاه Android، رفتار زیر را در نظر داشته باشید:

  • اعلان‌ها برای همه حساب‌های یک کاربر به طور همزمان ظاهر می‌شوند.
  • اعلان‌های سایر کاربران تا زمانی که فعال باشند ظاهر نمی‌شوند.
  • هر کاربر یک فضای کاری برای نصب و قرار دادن برنامه ها دریافت می کند.
  • هیچ کاربری به داده های برنامه کاربر دیگری دسترسی ندارد.
  • هر کاربری می تواند بر برنامه های نصب شده برای همه کاربران تأثیر بگذارد.
  • یک کاربر مدیر می تواند برنامه ها یا حتی کل فضای کاری ایجاد شده توسط کاربران ثانویه را حذف کند.

Android 7.0 شامل چندین پیشرفت است، از جمله:

  • نمایه کاری را تغییر دهید . کاربران می توانند نمایه مدیریت شده خود را غیرفعال کنند (مانند زمانی که در محل کار نیستند). این قابلیت با توقف کاربر به دست می آید. UserManagerService ActivityManagerNative#stopUser() را فرا می خواند.
  • VPN همیشه روشن برنامه‌های VPN اکنون می‌توانند توسط کاربر، دستگاه DPC یا نمایه مدیریت‌شده DPC روی همیشه روشن تنظیم شوند (فقط برای برنامه‌های نمایه مدیریت‌شده اعمال می‌شود). وقتی فعال باشد، برنامه‌ها نمی‌توانند به شبکه عمومی دسترسی داشته باشند (دسترسی به منابع شبکه تا زمانی که VPN وصل نشود و اتصالات از طریق آن مسیریابی شوند متوقف می‌شود). دستگاه‌هایی که device_admin را گزارش می‌دهند باید VPN همیشه روشن را پیاده‌سازی کنند.

برای جزئیات بیشتر درباره ویژگی‌های مدیریت دستگاه Android 7.0، به Android for Work مراجعه کنید.

Android Automotive چند کاربره

Android Automotive برای ارائه یک تجربه مشترک از دستگاه به پیاده سازی چند کاربره اندروید متکی است.

انواع کاربران خودرو

علاوه بر انواع کاربری ذکر شده در بالا، ساخت‌های Automotive برای این نوع کاربران قابل توجه است:

  • کاربر سیستم هدلس کاربر سیستم میزبان کلیه خدمات سیستم است. برای پشتیبانی از چندین کاربر در Automotive، کاربر سیستم نیز باید هدلس باشد. فقط یک کاربر بدون سر وجود دارد. یک کاربر سیستم بدون سر:
    • همیشه باید در پس‌زمینه اجرا شود.
    • کاربر نمی تواند مستقیماً حذف یا به آن دسترسی داشته باشد مگر در مورد تأمین دستگاه. به عنوان مثال، کاربران نمی‌توانند برای انجام کارهایی مانند دانلود برنامه‌ها یا افزودن حساب‌ها، به این نوع کاربری سوئیچ کنند.
    • فقط با تنظیم مجدد کارخانه پاک می شود.
  • کاربران معمولی همانند کاربران ثانویه ، که در بالا توضیح داده شد، با این تفاوت که کاربران ثانویه:
    • در پس‌زمینه اجرا نکنید (بعد از اینکه از آن جدا شدید).
    • می توان به طور مستقیم از طریق رابط کاربری ایجاد کرد.
    • داده‌های برنامه را از هم جدا کرده‌اید، اما برخی تنظیمات را در سراسر سیستم به اشتراک بگذارید. مثلا وای فای و بلوتوث.

هشدارها

استثنائات زیر برای کاربران سیستم بدون سر و کاربران عادی (ثانویه) در خودرو اعمال می شود:

  • کاربر سیستم هدلس از نمایه های کاری پشتیبانی نمی کند.
  • به طور پیش فرض، کاربران عادی (ثانویه) به تماس های تلفنی و پیامک دسترسی کامل دارند.
  • به طور پیش فرض، کاربران عادی (ثانویه) در پس زمینه اجرا نمی شوند.

فعال کردن کاربر سیستم Headless

از اندروید 10، ویژگی چند کاربره را می توان برای موارد استفاده از خودرو استفاده کرد. تمایزات مهم عبارتند از:

  • کاربر سیستم بدون سر است و فقط در پس زمینه اجرا می شود.
  • کاربران انسانی با کاربر سیستم تعاملی ندارند.

برای فعال کردن کاربر سیستم بدون سر، سازندگان دستگاه باید چند کاربر را همانطور که در بالا توضیح داده شد فعال کنند.

وقتی کاربر بدون سر فعال است:
  1. برای اعلام اینکه دستگاه به عنوان Automotive است، ویژگی android.hardware.type.automotive را اضافه کنید.
  2. ro.fw.headless_system_user را روی true تنظیم کنید.
  3. مقدار config_multiuserMaximumUsers را روی 2 (یا بالاتر) تنظیم کنید.

برای اطلاعات بیشتر، به پشتیبانی چند کاربره در خودرو مراجعه کنید.