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-restrictionsdapat disesuaikan. - Pengguna sistem tidak dapat dikustomisasi menggunakan mekanisme ini. Dalam hal ini,
default-restrictionsdapat disetel menggunakancom.android.internal.R.array.config_defaultFirstUserRestrictions. Lihatconfig.xmluntuk 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_smsdisetel 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_smsdanno_outgoing_callsdisetel 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-parentsdisetel ke2untuk dua profil per pengguna induk.change-user-type: mengonversi semua profil terkelola yang ada dari jenisandroid.os.usertype.profile.MANAGEDke jeniscom.example.profilenamebaru saat memutakhirkan perangkat dari versiuser-type<= 1melalui OTA.