הטמעת סוגי משתמשים בהתאמה אישית

ב-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 מוגדרות כך: אמת באמצעות ציון 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.