Menerapkan Jenis Pengguna Khusus

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 menggunakan com.android.internal.R.array.config_defaultFirstUserRestrictions . Lihat config.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 menentukan default-restrictions no_sms="true" .
  • 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 dan no_outgoing_calls disetel ke true dengan menetapkan default-restrictions no_sms="true" no_outgoing_calls="true" .

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 ke 2 untuk dua profil per pengguna induk.

  • change-user-type : mengonversi semua profil terkelola yang ada dari jenis android.os.usertype.profile.MANAGED ke jenis com.example.profilename baru saat memutakhirkan perangkat dari versi user-type <= 1 melalui OTA.