ב-Android 11 הושקה הקונספט של סוגי משתמשים מוגדרים היטב, שמייצגים את כל סוגי המשתמשים השונים שמותר להשתמש בהם בעזרת התכונה של Android למשתמשים מרובים. בעזרת התכונה הזו, יצרני ציוד מקורי יכולים להתאים אישית סוגי משתמשים מוגדרים מראש ב-AOSP ולהגדיר סוגי פרופילים חדשים. למידע נוסף, ראו סוגי משתמשים.
בדף הזה מפורטות הנחיות ההטמעה הנדרשות להתאמה אישית של סוגי משתמשים.
התאמה אישית
כדי להתאים אישית את סוגי המשתמשים של AOSP ולהגדיר סוגי פרופילים חדשים, ה-OEM צריך ליצור שכבת-על של config_user_types.xml
עם ההתאמות האישיות הרצויות. הקובץ config_user_types.xml
מכיל הטמעה של קובצי עזר ורשימה מקיפה של מאפיינים שאפשר להגדיר.
כל מאפיין, כמו default-restrictions
, שצוין בקובץ config_user_types.xml
, מחליף את ברירת המחדל של AOSP. כל מאפיין שלא צוין תואם לברירת המחדל של AOSP. שינוי של רוב המאפיינים, כמו מאפייני התג של סוג פרופיל, משפיע על המשתמשים הקיימים באותו סוג משתמש.
עם זאת, בגלל ש-default-restrictions
מוחל רק בזמן יצירת המשתמש, ושינוי המאפיין הספציפי הזה, במקרה שהקובץ config_user_types.xml
משתנה על ידי OTA, לא תהיה לכך השפעה על המשתמשים הקיימים. באופן דומה, ציון מספר המשתמשים המקסימלי חל רק כשיוצרים משתמשים חדשים. לא מתבצעת הסרה של משתמשים קיימים.
אלו הן ההגבלות הקיימות על התאמה אישית עבור כל סוג משתמש:
- אפשר להתאים אישית ולהגדיר פרופילים באופן מלא. במקרה הזה, ה-OEM אחראי לבצע את השינויים בפלטפורמה כפי שנדרש כדי שפרופיל מותאם אישית ייתמ�� ��-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.