תמיכה במשתמשים מרובים

ב-Android יש תמיכה בריבוי משתמשים במכשיר Android יחיד על ידי הפרדת משתמשים החשבונות והנתונים של האפליקציות. לדוגמה, הורים עשויים לאפשר לילדיהם משתמשים בטאבלט המשפחתי, בני משפחה יכולים לחלוק רכב או צוות תגובה חיונית יכול להיות שישתפו מכשיר נייד במסגרת התור.

טרמינולוגיה

ב-Android נעשה שימוש במונחים הבאים לתיאור משתמשים וחשבונות ב-Android.

כללי

ההגדרה של ניהול מכשירי Android מבוססת על המונחים הכלליים הבאים:

  • משתמש: כל משתמש מיועד לשימוש פיזי אחר. אדם. לכל משתמש יש נתוני אפליקציה ייחודיים והגדרות ייחודיות מסוימות, וגם ממשק משתמש שמאפשר לעבור בין משתמשים באופן מפורש. המשתמש יכול לפעול ב- הרקע שבו משתמש אחר פעיל. שהמערכת מנהלת את הכיבוי למשתמשים לשימור משאבים כשהדבר רלוונטי. אפשר ליצור משתמשים משניים ישירות דרך ממשק המשתמש או מכשיר אפליקציית ניהול.
  • חשבון: החשבונות נמצאים בתוך המשתמש, אבל הם לא מוגדרים על ידי משתמש, וגם המשתמש לא מוגדר על ידי חשבון נתון כלשהו או מקושר אליו. משתמשים וגם מכילים חשבונות ייחודיים משלהם, אבל הם לא נדרשים כדי שיהיו פעילים. רשימת החשבונות משתנה בהתאם למשתמש. לפרטים, לעיין חשבון הגדרה של מחלקה.
  • פרופיל: הפרופיל מכיל נתוני אפליקציה מופרדים, אבל חלק מהם משותפים הגדרות ברמת המערכת (לדוגמה, Wi-Fi ו-Bluetooth). פרופיל הוא קבוצת משנה של משתמש מסוים, ומקשר אליו. למשתמש אחד יכולים להיות מספר פרופילים. הפרופילים נוצרים דרך אפליקציית ניהול המכשיר. לכל פרופיל יש תמיד שיוך בלתי ניתן לשינוי למשתמש הורה, שמוגדר על ידי המשתמש שיצר את הפרופיל. הפרופילים לא קיימים מעבר לזמן החיים של המשתמש שיצר אותם.
  • אפליקציה: נתונים של האפליקציה קיימים בתוך כל משתמש משויך. נתוני האפליקציה מופרדים מאפליקציות אחרות באותו משתמש. קמפיינים לקידום אפליקציות בתוך אותו משתמש יכולים לתקשר זה עם זה דרך IPC. פרטים נוספים זמינים ל-Android for Enterprise.

קטגוריות של משתמשים

ניהול מכשירי Android מתבסס על הקטגוריות הבאות של משתמשים.

  • משתמש מערכת: המשתמש הראשון שנוסף למכשיר. אי אפשר להסיר את משתמש המערכת אלא על ידי איפוס להגדרות המקוריות, והוא תמיד פועל גם כשמשתמשים אחרים נמצאים בחזית. למשתמש הזה יש גם הרשאות והגדרות מיוחדות שרק הוא יכול להגדיר.
  • משתמש מערכת ללא גוף: המשתמש הראשון שנוסף למכשיר אם המכשיר מוגדר לפעול במצב של משתמש מערכת ללא גוף (על ידי הגדרת ro.fw.mu.headless_system_user=true). משתמש המערכת ללא גוף תמיד פועל ברקע, ולכן במכשירים כאלה נדרשים משתמשים נוספים בחזית כדי לאפשר אינטראקציה של משתמשים.
  • משתמש משני: כל משתמש שנוסף למכשיר מלבד משתמש המערכת. אפשר להסיר משתמשים משניים (על ידיהם או על ידי משתמש אדמין) והם לא יכולים להשפיע על משתמשים אחרים במכשיר. המשתמשים האלה יכולים להפעיל את האפליקציות ברקע ולהמשיך להתחבר לרשת.
  • משתמש אורח: משתמש משני זמני. למשתמשים כאורחים יש תוכן בוטה אפשרות למחוק במהירות את המשתמש האורח כשפג התוקף. אפשר להיות משתמש אורח אחד בלבד בכל פעם.
  • משתמש עם הרשאת אדמין: משתמש שיש לו הרשאה ליצור ולהסיר משתמשים אחרים, וכן לשלוט בכמה הגדרות כלליות של משתמשים מרובים. כברירת מחדל, רק משתמש המערכת הוא אדמין.

קטגוריות של פרופילים

מערכת Android משתמשת בקטגוריות הבאות של פרופילים:

  • פרופיל מנוהל: נוצר על ידי אפליקציה כדי להכיל נתוני עבודה ואפליקציות. הם מנוהלים רק על ידי הבעלים של הפרופיל (האפליקציה שיצרה את פרופיל הארגון). מרכז האפליקציות, ההתראות והמשימות האחרונות שמשותף על ידי המשתמש ההורה והפרופיל הארגוני.
  • פרופיל מוגבל: החשבונות מבוססים על חשבון ההורה, שיכול לקבוע אילו אפליקציות יהיו זמינות בפרופיל המוגבל. האפשרות זמינה רק בטאבלטים ובטלוויזיות.
  • שכפול פרופיל: ב-Android יש תמיכה ביצירה של משתמש בפרופיל שכפול נפרד type כדי להפעיל שני מופעים של אפליקציה אחת במכשיר. AOSP לא מספק תמיכה מלאה בתכונה. יצרני ציוד מקורי צריכים להוסיף התאמות אישיות כדי לספק את התכונה המלאה למשתמשים ב-Android.
  • פרופיל פרטי: זהו מרחב בארגז חול הנפרד משאר המכשיר, שניתן לנעול בנפרד מהמשתמש הראשי. פרופיל פרטי יכול להתקיים רק למשתמש הראשי. כשהפרופיל הפרטי לא נעול, האפליקציות גלויות בהגדרות, בקובץ לשיתוף, בכלי לבחירת תמונות ובממשק המשתמש של Docs, אבל הן מוסתרות כשהפרופיל נעול. הפרופיל הפרטי יכול להתקיים באותו מכשיר לצד פרופיל העבודה ופרופיל העותק.

סוגי משתמשים

מערכת Android 11 ניסחה את הסיווגים שלמעלה של משתמשים ופרופילים לקטגוריות מוגדרות היטב סוגי משתמשים, שמייצג את כל הסוגים השונים של המשתמשים והפרופילים המותרים על ידי משתמשים מרובים ב-Android .

סוגי המשתמשים המוגדרים מראש ב-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
  • android.os.usertype.profile.CLONE
  • android.os.usertype.profile.PRIVATE

יצרני ציוד מקורי יכולים להגדיר את סוגי המשתמשים האלה על ידי הוספת שכבת-על קובץ frameworks/base/core/res/res/xml/config_user_types.xml. כך אפשר לשנות את הגדרות ברירת המחדל של כל סוג משתמש, כולל הגבלות ברירת המחדל, סמלים, תגים והמספר המקסימלי המותר של משתמשים.

בנוסף לסוגי המשתמשים של ה-AOSP שניתנים להגדרה, יצרני ציוד מקורי יכולים להגדיר סוגי פרופילים חדשים באמצעות קובץ frameworks/base/core/res/res/xml/config_user_types.xml. כך יצרני ציוד מקורי יכולים להציג סוגי פרופילים לא מנוהלים משלהם, אם ירצו. עם זאת, באחריות ה-OEM לבצע שינויים בפלטפורמה כנדרש כדי לתמוך שינויים, כולל שינוי כל קוד שבודק אם פרופילים מנוהלים יטפלו עכשיו בפרופיל החדש. אם יש צורך.

הפעלת התכונה 'משתמשים מרובים'

התכונה של מספר משתמשים מושבתת כברירת מחדל. כדי להפעיל את התכונה, יצרני המכשירים צריכים להגדיר שכבת-על של משאבים שתחליף את הערכים הבאים ב-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 במערכת ה-build של Android שתחליף הערכים של:

  • config_multiuserMaximumUsers עם ערך גדול מ-1
  • config_enableMultiUserUI עם true

יצרני המכשירים יכולים לקבוע את מספר המשתמשים המקסימלי. אם המכשיר ליצרנים מסוימים או לאנשים אחרים יש הגדרות ששונו, עליהם לוודא בתחום הטלפוניה, כפי שמוגדר תאימות ל-Android מסמך הגדרה (CDD).

ניהול משתמשים מרובים

ניהול משתמשים ופרופילים (למעט פרופילים מוגבלים) מבוצעת על ידי אפליקציות שמפעילות API באופן פרוגרמטי כיתה אחת (DevicePolicyManager) להגבלת השימוש.

ארגונים יכולים להעסיק משתמשים ופרופילים לניהול כל משך החיים של הארגון ואת ההיקף של האפליקציות והנתונים במכשירים, באמצעות הסוגים שתוארו למעלה ב בשילוב עם DevicePolicyManager ו-UserManager ממשקי API לפיתוח פתרונות ייחודיים שמותאמים לתרחישים לדוגמה שלהם.

התנהגות של מערכת מרובת משתמשים

כשמשתמשים נוספים למכשיר, חלק מהפונקציונליות מוגבלת כשמשתמש אחר נמצא בחזית. מכיוון שנתוני האפליקציה מופרדים לפי משתמש, המצב של האפליקציות האלה משתנה ממשתמש למשתמש. לדוגמה, אימייל שנשלח לחשבון של משתמש שלא נמצא כרגע במוקד לא יהיה זמין עד שהמשתמש והחשבון שלו יהיו פעילים במכשיר.

הערה: כדי להפעיל או להשבית את התכונות של הטלפון וה-SMS למשתמש משני, עוברים אל הגדרות > משתמשים, בוחרים את המשתמש ומעבירים את המתג שליד ההגדרה הפעלת שיחות טלפון והודעות SMS למצב מושבת.

יש הגבלות מסוימות כשיש משתמש משני ברקע. לדוגמה, משתמש המשנה ברקע לא יכול להציג את ממשק המשתמש או להפעיל את שירותי ה-Bluetooth. בנוסף, תהליך המערכת משהה משתמשים משניים ברקע אם המכשיר זקוק לזיכרון נוסף לפעולות של המשתמש בחזית.

כשמשתמשים במספר משתמשים במכשיר Android, חשוב לזכור את ההתנהגות הבאה:

  • התראות מופיעות לכל החשבונות של משתמש אחד בו-זמנית.
  • התראות למשתמשים אחרים לא מופיעות עד שהן פעילות.
  • כל משתמש מקבל סביבת עבודה להתקנה ולמיקום של אפליקציות.
  • לאף משתמש אין גישה לנתוני האפליקציה של משתמש אחר.
  • כל משתמש יכול להשפיע על האפליקציות המותקנות לכל המשתמשים.
  • משתמשים עם הרשאת אדמין יכולים להסיר אפליקציות או אפילו את כל סביבת העבודה הקיימת. על ידי משתמשים משניים.
  • כברירת מחדל, מידע מסשן של משתמש אורח לא נשמר כשמסיימים את מצב האורח. אם רוצים שהמידע מסשן של משתמש אורח יישמר, צריך ליצור קובץ שכבת-על של משאבים שמגדיר את config_guestUserAllowEphemeralStateChange לערך false. למידע נוסף על יצירת קובצי שכבת-על, תוכלו לעיין במאמר התאמה אישית של ה-build באמצעות שכבות-על של משאבים.

משתמשים מרובים ב-Android Automotive

Android Automotive מסתמך על ההטמעה של Android למספר משתמשים כדי לספק חוויית שימוש במכשיר משותף.

סוגי משתמשים בתחום הרכב

בנוסף לסוגים של המשתמשים שצוינו למעלה, גרסאות build לכלי רכב מתאימות לסוגי המשתמשים הבאים:

  • משתמש במערכת ללא ממשק גרפי. משתמש המערכת מארח את כל שירותי המערכת. כדי לתמוך במספר משתמשים ב-Automotive, משתמש המערכת צריך להיות גם ללא צג. יש רק משתמש אחד ללא ממשק משתמש. משתמש במערכת ללא ממשק משתמש:
    • האפליקציה חייבת לפעול תמיד ברקע.
    • המשתמש לא יכול להסיר אותו או לגשת אליו ישירות, למעט במקרה של מכשיר הקצאה ידנית. לדוגמה, משתמשים לא יכולים לעבור לסוג המשתמש הזה כדי לבצע משימות כמו הורדת אפליקציות או הוספת חשבונות.
    • ניתן למחוק אותם רק באמצעות איפוס להגדרות המקוריות.
  • משתמשים קבועים. בדיוק כמו משתמשים משניים, כפי שמתואר למעלה, מלבד המשתמשים המשניים משתמשים:
    • לא לפעול ברקע (אחרי שהשימוש בה הופסק).
    • אפשר ליצור אותם ישירות דרך ממשק המשתמש.
    • נתוני אפליקציות מופרדים, אבל יש הגדרות משותפות מסוימות לכל המערכת. לדוגמה, Wi-Fi Bluetooth.

נקודות שצריך לשים לב אליהן:

ההחרגות הבאות חלות על משתמש מערכת ללא ממשק משתמש ועל משתמשים רגילים (משניים) ב-Automotive:

  • משתמש המערכת ללא ממשק משתמש לא תומך בפרופילים של עבודה.
  • כברירת מחדל, למשתמשים רגילים (משניים) יש גישה מלאה לשיחות טלפון ולהודעות טקסט.
  • כברירת מחדל, משתמשים רגילים (משניים) לא פועלים ברקע.

הפעלת המשתמש ללא ממשק משתמש של המערכת

החל מגרסה 10 של Android, אפשר להשתמש בתכונה 'שימוש בכמה משתמשים' בתרחישי שימוש ברכב. חשוב ההבדלים הבאים כוללים:

  • משתמש המערכת הוא ללא ממשק משתמש (headless) ופועל רק ברקע.
  • משתמשים אנושיים לא יוצרים אינטראקציה עם משתמש המערכת.

כדי להפעיל את המשתמש באפליקציית המערכת ללא ממשק גרפי, יצרני המכשירים צריכים להפעיל את התכונה 'מספר משתמשים' כפי שמתואר למעלה.

כשהמשתמש ללא ממשק משתמש מופעל:
  1. כדי להצהיר שהמכשיר הוא כלי רכב, צריך להוסיף את התכונה android.hardware.type.automotive
  2. מגדירים את ro.fw.headless_system_user לערך true.
  3. מגדירים את הערך של config_multiuserMaximumUsers כ-2 (או גבוה יותר).

מידע נוסף זמין במאמר תמיכה בכמה משתמשים ב-Automotive.

Android Automotive מרובה משתמשים במסכים מרובים

תכונת ניסוי חדשה ב-Android 14 מאפשרת למשתמשים משניים מלאים (שאינם המשתמש הנוכחי בחזית) להפעיל פעילויות ולקבל גישה לממשק המשתמש במסך שאליו הם משויכים. התכונה הזו מאפשרת למספר משתמשים בו-זמנית ב-Android Automotive OS לתמוך בחוויות ברכב שמספקות למספר נוסעים חוויית ממשק משתמש ייעודית במכונה אחת של Android.

כדי להפעיל את התכונה הזו לצורכי פיתוח, יצרני המכשירים צריכים להגדיר שכבת-על של משאבים כדי להחליף את הערך הבא ב-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>

ב-Android 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>