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ı getirmiştir. Bu özellik sayesinde OEM'ler ö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önergelerinin ayrıntıları verilmektedir.
Özelleştirme
AOSP kullanıcı türlerini özelleştirmek ve yeni profil türleri tanımlamak için OEM'in config_user_types.xml
dosyasını istenen özelleştirmelerle kaplaması gerekir. config_user_types.xml
dosyası bir referans uygulamasını ve yapılandırılabilir niteliklerin kapsamlı bir listesini içerir.
config_user_types.xml
dosyasında belirtilen default-restrictions
gibi herhangi bir öznitelik, AOSP varsayılanının üzerine yazar. Belirtilmeyen herhangi bir öznitelik, AOSP varsayılanına uyar. Profil türünün rozet özellikleri gibi çoğu özelliğin değiştirilmesi, o kullanıcı türünün önceden mevcut kullanıcılarını etkiler. Ancak, default-restrictions
yalnızca kullanıcı oluşturulduğunda uygulandığından, config_user_types.xml
dosyasının OTA tarafından değiştirilmesi durumunda bu özel özniteliğin değiştirilmesinin önceden var olan kullanıcılar üzerinde hiçbir etkisi yoktur. Benzer şekilde, maksimum kullanıcı sayısını belirlemek yalnızca yeni kullanıcılar oluşturulurken geçerlidir; mevcut kullanıcılar kaldırılmaz.
Her kullanıcı türü için mevcut özelleştirme kısıtlamaları aşağıdaki gibidir:
- Profiller tamamen özelleştirilebilir ve tanımlanabilir. Bu durumda, AOSP yalnızca önceden tanımlanmış AOSP kullanıcı türlerini desteklediğinden OEM, özel profillerinin Android'de desteklenmesi için gereken platform değişikliklerini yapmaktan sorumludur.
- 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
bakın.
Mevcut kullanıcı türlerini değiştirin
Mevcut kullanıcı türleri, aşağıdaki kod örneğinde gösterildiği gibi öznitelikleri geçersiz kılınarak ö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, aşağıdaki AOSP kullanıcı türleri, desteklenen özellikler değiştirilerek özelleştirilir.
Tam kullanıcı
android.os.usertype.full.SECONDARY
:-
no_sms
varsayılan kısıtlaması,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 nitelikleri
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
kullanılarak istenilen değerlere ayarlanır. -
no_sms
veno_outgoing_calls
varsayılan kısıtlamalarıdefault-restrictions no_sms="true" no_outgoing_calls="true"
belirtilerek true olarak ayarlanır.
-
Bu özelliklerin anlamı ve varsayılan değerleri için UserTypeFactory.java
ve UserTypeDetails.java
bakın.
Özel profil türlerini tanımlayın
Aşağıdaki kod örneği, yeni, özel profil türlerinin nasıl tanımlandığını gösterir.
<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ü şu şekilde tanımlanmıştır:
max-allowed-per-parents
ebeveyn kullanıcı başına iki profil için2
ayarlanmıştır.change-user-type
: cihazı<= 1
user-type
sürümünden OTA aracılığıyla yükseltirkenandroid.os.usertype.profile.MANAGED
türündeki tüm mevcut yönetilen profilleri yenicom.example.profilename
türüne dönüştürür.