Android 11 telah memperkenalkan konsep jenis pengguna yang ditentukan dengan baik, yang mewakili semua jenis pengguna yang berbeda yang diizinkan oleh fitur Multi-pengguna Android. Dengan fitur ini, OEM dapat menyesuaikan jenis pengguna AOSP yang telah ditentukan 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 menimpa
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, akan menimpa default AOSP. Atribut apa pun yang tidak ditentukan akan mematuhi default AOSP. Mengubah sebagian besar atribut, seperti atribut badge jenis profil, akan memengaruhi pengguna yang sudah ada dari jenis pengguna tersebut.
Namun, karena default-restrictions hanya diterapkan saat pengguna dibuat, mengubah atribut tertentu 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 saat membuat pengguna baru; pengguna yang ada tidak akan 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 melakukan modifikasi platform sesuai kebutuhan agar profil kustomnya didukung di Android, karena AOSP hanya mendukung jenis pengguna AOSP yang telah ditentukan.
- Pengguna penuh tidak dapat ditentukan dan hanya atribut
default-restrictionsyang dapat disesuaikan. - Pengguna sistem tidak dapat disesuaikan menggunakan mekanisme ini. Dalam hal ini,
default-restrictionsdapat ditetapkan menggunakancom.android.internal.R.array.config_defaultFirstUserRestrictions. Lihatconfig.xmluntuk mengetahui 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_smsditetapkan ke benar 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. - Batasan default
no_smsdanno_outgoing_callsditetapkan ke benar 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 kustom
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-parentsditetapkan ke2untuk dua profil per pengguna induk.change-user-type: mengonversi semua profil terkelola yang ada dari jenisandroid.os.usertype.profile.MANAGEDkecom.example.profilenamejenis baru saat mengupgrade perangkat dari versiuser-type<= 1melalui OTA.