תמיכה במספר משתמשים

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

טרמינולוגיה

אנדרואיד משתמשת במונחים הבאים בעת תיאור משתמשי וחשבונות אנדרואיד.

כללי

ניהול מכשירי אנדרואיד משתמש בתנאים הכלליים הבאים:

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

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

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

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

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

אנדרואיד משתמש בקטגוריות הבאות של פרופילים:

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

סוגי משתמשים

אנדרואיד 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

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

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

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

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

ניהול מספר משתמשים

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

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

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

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

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

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

בעת העסקת משתמשים מרובים במכשיר אנדרואיד, זכור את ההתנהגות הבאה:

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

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

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

סוגי משתמשים לרכב

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

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

אזהרות

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

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

הפעלת משתמש המערכת חסר הראש

החל מ-Android 10, ניתן להשתמש בתכונת ריבוי המשתמשים למקרי שימוש ברכב. הבחנות חשובות כוללות:

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

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

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

למידע נוסף, ראה תמיכה מרובה משתמשים ברכב.

Android Automotive מרובה משתמשים במספר צגים

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

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