Android 11 telah memperkenalkan konsep tipe pengguna, yang mewakili semua tipe pengguna yang diizinkan oleh Fitur Multi-pengguna Android. Dengan fitur ini, OEM dapat menyesuaikan Jenis pengguna AOSP dan menentukan jenis profil baru. Lihat bagian tentang jenis pengguna untuk mengetahui informasi selengkapnya.
Halaman ini menjelaskan panduan penerapan yang diperlukan untuk menyesuaikan jenis pengguna.
Penyesuaian
Untuk menyesuaikan jenis pengguna AOSP dan menentukan jenis profil baru, OEM
harus ditempatkan di atas
config_user_types.xml
dengan penyesuaian yang diinginkan. File config_user_types.xml
berisi implementasi referensi dan daftar lengkap atribut
yang dapat dikonfigurasi.
Atribut apa pun, seperti default-restrictions
, yang ditentukan dalam
config_user_types.xml
, menimpa default AOSP. Atribut apa pun yang
tidak ditentukan, mematuhi default AOSP. Mengubah sebagian besar atribut, seperti
atribut badge jenis profil, akan memengaruhi pengguna jenis pengguna tersebut yang sudah ada.
Namun, karena default-restrictions
hanya diterapkan pada saat pengguna
dibuat, mengubah atribut khusus ini, jika
file config_user_types.xml
diubah oleh OTA, tidak akan memengaruhi pengguna
yang sudah ada. Demikian pula, menentukan jumlah maksimum pengguna hanya berlaku jika
membuat pengguna baru; pengguna yang ada tidak akan dihapus.
Batasan penyesuaian saat ini untuk setiap jenis pengguna adalah sebagai berikut:
- Profil dapat disesuaikan dan ditentukan sepenuhnya. Dalam hal ini, OEM bertanggung jawab untuk membuat modifikasi platform sebagaimana diperlukan agar profil kustom mereka didukung di Android, karena AOSP hanya mendukung jenis pengguna AOSP yang telah ditentukan sebelumnya.
- Pengguna penuh tidak dapat ditentukan dan hanya atribut
default-restrictions
mereka yang dapat disesuaikan. - Pengguna sistem tidak dapat disesuaikan menggunakan mekanisme ini. Dalam kasus ini,
default-restrictions
dapat disetel menggunakancom.android.internal.R.array.config_defaultFirstUserRestrictions
. Lihatconfig.xml
untuk informasi selengkapnya.
Mengubah jenis pengguna yang ada
Jenis pengguna yang ada dapat disesuaikan dengan mengganti atributnya seperti yang ditunjukkan dalam contoh kode berikut:
<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>
Dalam contoh kode ini, jenis pengguna AOSP berikut disesuaikan dengan mengubah properti yang didukung:
Pengguna penuh
android.os.usertype.full.SECONDARY
:- Batasan default
no_sms
ditetapkan ke benar (true) dengan menentukandefault-restrictions no_sms="true"
.
- Batasan default
Pengguna profil
android.os.usertype.profile.MANAGED
:- Dua profil diizinkan untuk setiap pengguna induk dengan menetapkan
max-allowed-per-parent='2'
. - Atribut badge ditetapkan ke nilai yang dipilih menggunakan
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Pembatasan default
no_sms
danno_outgoing_calls
ditetapkan ke true dengan menentukandefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Dua profil diizinkan untuk setiap pengguna induk dengan menetapkan
Lihat UserTypeFactory.java
dan UserTypeDetails.java
untuk mengetahui arti dan nilai default properti ini.
Menentukan jenis profil khusus
Contoh kode berikut menunjukkan cara menentukan jenis profil kustom yang baru:
<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>
Dalam contoh kode ini, jenis profil com.example.profilename
ditentukan sebagai berikut:
max-allowed-per-parents
disetel ke2
untuk dua profil per pengguna induk.change-user-type
: mengonversi semua profil terkelola yang ada dari jenisandroid.os.usertype.profile.MANAGED
ke jeniscom.example.profilename
baru saat mengupgrade perangkat dariuser-type
versi<= 1
melalui OTA.