Özel kullanıcı türleri uygulama

Android 11, iyi tanımlanmış tarafından izin verilen tüm farklı kullanıcı türlerini temsil eden Android çok kullanıcılı özelliği. OEM'ler bu özellik sayesinde önceden tanımlanmış AOSP kullanıcı türleri ile yeni profil türleri tanımlar. Bu bölümde, kullanıcı türlerine göz atın.

Bu sayfada, kullanıcı türlerini özelleştirmek için gereken uygulama yönergeleri ayrıntılı olarak açıklanmıştır.

Özelleştirme

AOSP kullanıcı türlerini özelleştirmek ve yeni profil türleri tanımlamak için OEM'nin config_user_types.xml tercih edilen özelleştirmelerle birlikte kullanması gerekir. config_user_types.xml dosyası bir referans uygulaması ve yapılandırılabilir reklamlar için kapsamlı bir liste özellikleri hakkında daha fazla bilgi edinin.

default-restrictions gibi, config_user_types.xml dosyası için varsayılan AOSP'nin üzerine yazılır. Belirtilmeyen tüm özellikler AOSP varsayılanına uyar. Çoğu özelliği değiştirme, örneğin profil türünün rozet özellikleri, söz konusu kullanıcı türünün önceden var olan kullanıcılarını etkiler. Ancak default-restrictions yalnızca kullanıcı oluşturulduğunda uygulandığından, config_user_types.xml dosyası OTA tarafından değiştirilirse bu özelliğin değiştirilmesi, mevcut kullanıcıları etkilemez. Benzer şekilde, maksimum kullanıcı sayısını belirtmek yalnızca yeni kullanıcılar oluşturulurken geçerlidir; mevcut kullanıcılar kaldırılmaz.

Her kullanıcı türü için geçerli özelleştirme kısıtlamaları aşağıdaki gibidir:

  • Profiller tamamen özelleştirilebilir ve tanımlanabilir. Bu durumda OEM özel çalışmalarında gerekli olduğu durumlarda platform üzerinde değişiklikler yapmaktan AOSP yalnızca önceden tanımlanmış verileri desteklediğinden Android'de desteklenecektir. AOSP kullanıcı türleri.
  • Tam kullanıcılar tanımlanamaz ve yalnızca default-restrictions özellikleri özelleştirilebilir.
  • Sistem kullanıcısı, bu mekanizma kullanılarak özelleştirilemez. Bu durumda, default-restrictions, com.android.internal.R.array.config_defaultFirstUserRestrictions kullanılarak ayarlanabilir. Daha fazla bilgi için config.xml sayfasına göz atın.

Mevcut kullanıcı türlerini değiştirme

Mevcut kullanıcı türleri, gösterildiği gibi özellikleri geçersiz kılınarak özelleştirilebilir inceleyebilirsiniz:

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

Bu kod örneğinde, aşağıdaki AOSP kullanıcı türleri değiştirilerek özelleştirilir. desteklenen özellikleri:

  • Tam kullanıcı android.os.usertype.full.SECONDARY:

    • no_sms için varsayılan kısıtlama, default-restrictions no_sms="true" belirtilerek true olarak ayarlanır.
  • Profil kullanıcısı android.os.usertype.profile.MANAGED:

    • max-allowed-per-parent='2' ayarlanarak her ebeveyn kullanıcı için iki profile izin verilir.
    • Rozet özellikleri, icon-badge kullanılarak seçilen değerlere ayarlanır. badge-plain, badge-no-background, badge-labels, badge-colors.
    • no_sms ve no_outgoing_calls için varsayılan kısıtlamalar, default-restrictions no_sms="true" no_outgoing_calls="true" belirtilerek doğru olarak ayarlanır.

Bu özelliklerin anlamı ve varsayılan değerleri için UserTypeFactory.java ve UserTypeDetails.java özelliklerine bakın.

Özel profil türleri tanımlama

Aşağıdaki kod örneğinde, yeni özel profil türlerinin nasıl tanımlandığı gösterilmektedir:

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

Bu kod örneğinde, com.example.profilename profil türü aşağıdaki gibi tanımlanmıştır:

  • max-allowed-per-parents, üst kullanıcı başına iki profil için 2 olarak ayarlandı.

  • change-user-type: Bu türdeki mevcut tüm yönetilen profilleri dönüştürür Yeni com.example.profilename ile android.os.usertype.profile.MANAGED arasında cihaz <= 1 adlı user-type sürümünden yükseltildiğinde yardımcı oluyor.