Android 11 telah memperkenalkan konsep tipe pengguna yang terdefinisi dengan baik, yang mewakili semua tipe pengguna berbeda yang diizinkan oleh fitur Multi-pengguna Android. Dengan fitur ini, OEM dapat menyesuaikan tipe pengguna AOSP yang telah ditentukan sebelumnya dan menentukan tipe profil baru. Lihat bagian tentang tipe pengguna untuk informasi lebih lanjut.
Halaman ini merinci panduan penerapan yang diperlukan untuk menyesuaikan jenis pengguna.
Kustomisasi
Untuk menyesuaikan jenis pengguna AOSP dan untuk menentukan jenis profil baru, OEM harus melapisi 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 file config_user_types.xml
, menimpa default AOSP. Atribut apa pun yang tidak ditentukan, mematuhi default AOSP. Mengubah sebagian besar atribut, seperti atribut lencana jenis profil, memengaruhi pengguna yang sudah ada sebelumnya dari jenis pengguna tersebut. Namun, karena default-restrictions
hanya diterapkan pada saat pengguna dibuat, memodifikasi atribut khusus ini, jika file config_user_types.xml
diubah oleh OTA, tidak akan berpengaruh pada pengguna yang sudah ada sebelumnya. Demikian pula, menentukan jumlah maksimum pengguna hanya berlaku saat membuat pengguna baru; pengguna yang ada tidak dihapus.
Batasan penyesuaian saat ini untuk setiap jenis pengguna adalah sebagai berikut:
- Profil dapat sepenuhnya disesuaikan dan ditentukan. Dalam hal ini, OEM bertanggung jawab untuk membuat modifikasi platform yang diperlukan agar profil kustom mereka didukung di Android, karena AOSP hanya mendukung tipe pengguna AOSP yang telah ditentukan sebelumnya.
- Pengguna penuh tidak dapat ditentukan dan hanya atribut
default-restrictions
dapat disesuaikan. - Pengguna sistem tidak dapat dikustomisasi menggunakan mekanisme ini. Dalam hal ini,
default-restrictions
dapat disetel menggunakancom.android.internal.R.array.config_defaultFirstUserRestrictions
. Lihatconfig.xml
untuk informasi lebih lanjut.
Ubah jenis pengguna yang ada
Jenis pengguna yang ada dapat dikustomisasi 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, tipe pengguna AOSP berikut dikustomisasi dengan memodifikasi properti yang didukung.
Pengguna penuh
android.os.usertype.full.SECONDARY
:- Pembatasan default
no_sms
disetel ke true dengan menentukandefault-restrictions no_sms="true"
.
- Pembatasan default
Profil pengguna
android.os.usertype.profile.MANAGED
:- Dua profil diizinkan untuk setiap pengguna induk dengan menyetel
max-allowed-per-parent='2'
. - Atribut lencana disetel ke nilai yang diinginkan menggunakan
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Batasan default
no_sms
danno_outgoing_calls
disetel ke true dengan menetapkandefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Dua profil diizinkan untuk setiap pengguna induk dengan menyetel
Lihat UserTypeFactory.java
dan UserTypeDetails.java
untuk arti dan nilai default properti ini.
Tentukan jenis profil khusus
Contoh kode berikut menunjukkan bagaimana tipe profil kustom baru ditentukan.
<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, tipe profil com.example.profilename
didefinisikan 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 memutakhirkan perangkat dari versiuser-type
<= 1
melalui OTA.