Android 11, Android Çoklu Kullanıcı özelliğinin izin verdiği tüm farklı kullanıcı türlerini temsil eden iyi tanımlanmış kullanıcı türleri kavramını kullanıma sundu. OEM'ler bu özellik sayesinde, önceden tanımlanmış AOSP kullanıcı türlerini özelleştirebilir ve yeni profil türleri tanımlayabilir. Daha fazla bilgi için kullanıcı türleri bölümüne bakı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ı, referans bir uygulama ve yapılandırılabilir özelliklerin kapsamlı bir listesini içerir.
config_user_types.xml
dosyasında belirtilen default-restrictions
gibi tüm özelliklerin AOSP varsayılan değerinin üzerine yazılır. Belirtilmemiş tüm özellikler, AOSP varsayılanına uyar. Bir profil türünün rozet özellikleri gibi çoğu özelliği değiştirmek, söz konusu kullanıcı türünde önceden var olan kullanıcıları 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ın belirtilmesi yalnızca yeni kullanıcılar oluşturulurken geçerli olur; 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'ler özel profillerinin Android'de desteklenmesi için gereken platform değişikliklerini yapmaktan sorumludur. Bunun nedeni, AOSP'nin yalnızca önceden tanımlanmış AOSP kullanıcı türlerini desteklemesidir.
- 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çinconfig.xml
sayfasına göz atın.
Mevcut kullanıcı türlerini değiştirme
Mevcut kullanıcı türleri, aşağıdaki kod örneğinde gösterildiği gibi özelliklerinin geçersiz kılınmasıyla özelleştirilebilir:
<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, desteklenen özellikler değiştirilerek aşağıdaki AOSP kullanıcı türleri özelleştirilir:
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
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
kullanılarak seçilen değerlere ayarlanır. no_sms
veno_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çin2
olarak ayarlandı.change-user-type
: Cihaz, OTA üzerinden<= 1
'inuser-type
sürümünden yükseltilirkenandroid.os.usertype.profile.MANAGED
türündeki mevcut yönetilen profillerin tümünü yenicom.example.profilename
türüne dönüştürür.