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

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

בדף הזה מפורטות הנחיות ההטמעה הנדרשות להתאמה אישית של סוגי משתמשים.

התאמה אישית

כדי להתאים אישית את סוגי המשתמשים ב-AOSP ולהגדיר סוגי פרופילים חדשים, יצרני הציוד המקורי צריכים להוסיף שכבה על 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.