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

אנדרואיד 11 הציגה את הרעיון של סוגי משתמשים מוגדרים היטב, המייצגים את כל סוגי המשתמשים השונים המותרים על ידי תכונת מרובה המשתמשים של אנדרואיד. עם תכונה זו, יצרני OEM יכולים להתאים אישית סוגי משתמש 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 אחראי לבצע שינויים בפלטפורמה כנדרש לתמיכה בפרופיל המותאם אישית שלו באנדרואיד, מכיוון ש-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.