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

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

טרמינולוגיה

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

כללי

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

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

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

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

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

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

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

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

סוגי משתמשים

מערכת 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 מתאימות לסוגים האלה מהמשתמשים:

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

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

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

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

הפעלת משתמש במערכת ללא GUI

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

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

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

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

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

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>