ב-Android 11 הוצג המושג של סוגי משתמשים מוגדרים היטב, שמייצגים את כל הסוגים השונים של משתמשים שמותרים על ידי התכונה 'משתמשים מרובים' ב-Android. התכונה הזו מאפשרת ליצרני ציוד מקורי (OEM) להתאים אישית סוגי משתמשים מוגדרים מראש ב-AOSP ולהגדיר סוגי פרופילים חדשים. מידע נוסף זמין בקטע בנושא סוגי משתמשים.
בדף הזה מפורטות ההנחיות להטמעה שנדרשות כדי להתאים אישית את סוגי המשתמשים.
התאמה אישית
כדי להתאים אישית את סוגי המשתמשים ב-AOSP ולהגדיר סוגי פרופילים חדשים, יצרן ה-OEM צריך להשתמש בשכבת-על (overlay) של config_user_types.xml
עם ההתאמות האישיות הרצויות. קובץ config_user_types.xml
מכיל הטמעה לדוגמה ורשימה מקיפה של מאפיינים שאפשר להגדיר.
כל מאפיין, כמו default-restrictions
, שמצוין בקובץ config_user_types.xml
, מחליף את ברירת המחדל של AOSP. כל מאפיין שלא מצוין פועל לפי ברירת המחדל של AOSP. שינוי של רוב המאפיינים, כמו מאפייני תג של סוג פרופיל, משפיע על משתמשים קיימים מסוג המשתמש הזה.
עם זאת, מכיוון שהמאפיינים default-restrictions
מוחלים רק בזמן יצירת המשתמש, שינוי המאפיין הזה, במקרה שקובץ config_user_types.xml
משתנה על ידי OTA, לא משפיע על משתמשים שכבר קיימים. באופן דומה, הגדרת מספר מקסימלי של משתמשים חלה רק כשיוצרים משתמשים חדשים, ולא מסירה משתמשים קיימים.
ההגבלות הנוכחיות על התאמה אישית לכל סוג משתמש הן:
- אפשר להתאים אישית את הפרופילים ולהגדיר אותם. במקרה כזה, יצרן הציוד המקורי אחראי לבצע את השינויים בפלטפורמה שנדרשים כדי שהפרופיל המותאם אישית שלו ייתמך ב-Android, כי AOSP תומכת רק בסוגי המשתמשים המוגדרים מראש של AOSP.
- אי אפשר להגדיר משתמשים מלאים, ואפשר להתאים אישית רק את המאפיין
default-restrictions
שלהם. - אי אפשר להתאים אישית את משתמש המערכת באמצעות המנגנון הזה. במקרה הזה, אפשר להגדיר את
default-restrictions
באמצעותcom.android.internal.R.array.config_defaultFirstUserRestrictions
. מידע נוסף זמין בכתובתconfig.xml
.
שינוי סוגי משתמשים קיימים
אפשר להתאים אישית סוגי משתמשים קיימים על ידי החלפת המאפיינים שלהם, כמו שמוצג בדוגמת הקוד הבאה:
<user-types version="0">
<full-type name="android.os.usertype.full.SECONDARY" >
<default-restrictions no_sms="true" />
</full-type>
<profile-type
name='android.os.usertype.profile.MANAGED'
max-allowed-per-parent='2'
icon-badge='@android:drawable/ic_corp_icon_badge_case'
badge-plain='@android:drawable/ic_corp_badge_case'
badge-no-background='@android:drawable/ic_corp_badge_no_background' >
<badge-labels>
<item res='@android:string/managed_profile_label_badge' />
<item res='@android:string/managed_profile_label_badge_2' />
</badge-labels>
<badge-colors>
<item res='@android:color/profile_badge_1' />
<item res='@android:color/profile_badge_2' />
</badge-colors>
<default-restrictions no_sms="true" no_outgoing_calls="true" />
</profile-type>
</user-types>
בדוגמת הקוד הזו, סוגי המשתמשים הבאים ב-AOSP מותאמים אישית על ידי שינוי המאפיינים הנתמכים:
משתמש עם גישה מלאה
android.os.usertype.full.SECONDARY
:- ההגבלה שמוגדרת כברירת מחדל ל-
no_sms
היא true, אם מצייניםdefault-restrictions no_sms="true"
.
- ההגבלה שמוגדרת כברירת מחדל ל-
המשתמש בפרופיל
android.os.usertype.profile.MANAGED
:- אפשר ליצור שני פרופילים לכל משתמש הורה באמצעות ההגדרה
max-allowed-per-parent='2'
. - ערכי מאפייני התג מוגדרים לערכים שנבחרו באמצעות
icon-badge
,badge-plain
, badge-no-background
, badge-labels
, badge-colors
. - ההגבלות שמוגדרות כברירת מחדל ל-
no_sms
ול-no_outgoing_calls
הן true, והן מוגדרות באמצעותdefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- אפשר ליצור שני פרופילים לכל משתמש הורה באמצעות ההגדרה
במאמרים בנושא UserTypeFactory.java
ו-UserTypeDetails.java
אפשר למצוא הסברים על המאפיינים האלה ועל ערכי ברירת המחדל שלהם.
הגדרת סוגי פרופילים בהתאמה אישית
בדוגמת הקוד הבאה אפשר לראות איך מוגדרים סוגים חדשים של פרופילים בהתאמה אישית:
<user-types version="1">
<profile-type
name="com.example.profilename"
max-allowed-per-parent="2" />
<change-user-type
from="android.os.usertype.profile.MANAGED"
to="com.example.profilename"
whenVersionLeq="1" />
</user-types>
בדוגמת הקוד הזו, סוג הפרופיל com.example.profilename
מוגדר באופן הבא:
ההגדרה
max-allowed-per-parents
מוגדרת כ-2
לשני פרופילים לכל משתמש הורה.
change-user-type
: ממיר את כל הפרופילים המנוהלים הקיימים מהסוגandroid.os.usertype.profile.MANAGED
לסוגcom.example.profilename
החדש כשמשדרגים את המכשיר מגרסהuser-type
של<= 1
באמצעות OTA.