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

ב-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.