Mendukung banyak pengguna

Android mendukung beberapa pengguna di satu perangkat Android dengan memisahkan akun pengguna dan data aplikasi. Misalnya, orang tua dapat mengizinkan anak-anak mereka menggunakan tablet keluarga, keluarga dapat berbagi mobil, atau tim respons kritis dapat berbagi perangkat seluler untuk tugas piket.

Terminologi

Android menggunakan istilah berikut saat menjelaskan pengguna dan akun Android.

Umum

Pengelolaan perangkat Android menggunakan istilah umum berikut:

  • Pengguna: Setiap pengguna dimaksudkan untuk digunakan oleh orang fisik yang berbeda. Setiap pengguna memiliki data aplikasi yang berbeda dan beberapa setelan unik, serta antarmuka pengguna untuk beralih antar-pengguna secara eksplisit. Pengguna dapat berjalan di latar belakang saat pengguna lain aktif; sistem mengelola penonaktifan pengguna untuk menghemat resource jika sesuai. Pengguna sekunder dapat dibuat secara langsung melalui antarmuka pengguna atau dari aplikasi Pengelolaan Perangkat.
  • Akun: Akun terdapat dalam pengguna, tetapi tidak ditentukan oleh pengguna, begitu pula pengguna tidak ditentukan oleh atau ditautkan ke akun tertentu. Pengguna dan profil berisi akun unik mereka sendiri, tetapi tidak diwajibkan untuk memiliki akun agar berfungsi. Daftar akun berbeda-beda menurut pengguna. Untuk mengetahui detailnya, lihat definisi Class akun.
  • Profil: Profil telah memisahkan data aplikasi, tetapi berbagi beberapa setelan seluruh sistem (misalnya, Wi-Fi dan Bluetooth). Profil adalah subkumpulan dan terikat dengan keberadaan pengguna. Pengguna dapat memiliki beberapa profil. Profil dibuat melalui aplikasi Pengelolaan Perangkat. Profil selalu memiliki pengaitan yang tidak dapat diubah ke pengguna induk, yang ditentukan oleh pengguna yang membuat profil. Profil tidak ada setelah masa aktif pengguna yang membuatnya berakhir.
  • Aplikasi: Data aplikasi ada dalam setiap pengguna terkait. Data aplikasi di-sandbox dari aplikasi lain dalam pengguna yang sama. Aplikasi dalam pengguna yang sama dapat berinteraksi satu sama lain melalui IPC. Untuk mengetahui detailnya, lihat Android untuk perusahaan.

Kategori pengguna

Administrasi perangkat Android menggunakan kategori pengguna berikut.

  • Pengguna sistem: Pengguna pertama yang ditambahkan ke perangkat. Pengguna sistem tidak dapat dihapus kecuali dengan mereset ke setelan pabrik dan selalu berjalan meskipun pengguna lain berada di latar depan. Pengguna ini juga memiliki hak istimewa dan setelan khusus yang hanya dapat ditetapkan olehnya.
  • Pengguna sistem headless: Pengguna pertama yang ditambahkan ke perangkat jika perangkat dikonfigurasi untuk berjalan dalam mode pengguna sistem headless (dengan menyetel ro.fw.mu.headless_system_user=true). Pengguna sistem headless selalu berjalan di latar belakang, sehingga perangkat tersebut memerlukan pengguna latar depan tambahan untuk mengaktifkan interaksi pengguna.
  • Pengguna sekunder: Pengguna apa pun yang ditambahkan ke perangkat selain pengguna sistem. Pengguna sekunder dapat dihapus (baik oleh pengguna itu sendiri maupun oleh pengguna admin) dan tidak dapat memengaruhi pengguna lain di perangkat. Pengguna ini dapat berjalan di latar belakang dan terus memiliki konektivitas jaringan.
  • Pengguna tamu: Pengguna sekunder sementara. Pengguna tamu memiliki opsi eksplisit untuk menghapus pengguna tamu dengan cepat setelah kegunaannya berakhir. Hanya boleh ada satu pengguna tamu dalam satu waktu.
  • Pengguna admin: Pengguna yang memiliki izin untuk membuat dan menghapus pengguna lain, serta mengontrol beberapa setelan multi-pengguna umum. Secara default, hanya pengguna sistem yang merupakan admin.

Kategori profil

Android menggunakan kategori profil berikut:

  • Profil terkelola: Dibuat oleh aplikasi untuk memuat aplikasi dan data kerja. Profil ini dikelola secara eksklusif oleh pemilik profil (aplikasi yang membuat profil perusahaan). Peluncur, notifikasi, dan tugas terbaru dibagikan oleh pengguna induk dan profil perusahaan.
  • Profil terbatas: Menggunakan akun berdasarkan pengguna induk, yang dapat mengontrol aplikasi yang tersedia di profil terbatas. Hanya tersedia di tablet dan perangkat televisi.
  • Profil clone: Android mendukung pembuatan jenis pengguna profil clone terpisah untuk memungkinkan pengoperasian dua instance satu aplikasi di perangkat. AOSP tidak menyediakan dukungan menyeluruh untuk fitur ini. OEM perlu menambahkan penyesuaian untuk menghadirkan fitur lengkap kepada pengguna Android.
  • Profil pribadi: Ini adalah ruang dengan sandbox yang terpisah dari seluruh perangkat, yang dapat dikunci secara terpisah dari pengguna utama. Profil pribadi hanya dapat ada untuk pengguna utama. Saat profil pribadi dibuka kuncinya, aplikasi akan terlihat di setelan, ShareSheet, Photopicker, dan DocsUI, tetapi aplikasi akan disembunyikan saat dikunci. Profil pribadi dapat ada di perangkat yang sama bersama dengan profil kerja dan profil clone.

Jenis pengguna

Android 11 telah merumuskan klasifikasi pengguna dan profil di atas menjadi jenis pengguna yang ditentukan dengan baik, yang mewakili semua jenis pengguna dan profil yang diizinkan oleh fitur Multi-pengguna Android.

Jenis pengguna AOSP yang telah ditentukan sebelumnya ditentukan di frameworks/base/core/java/android/os/UserManager.java dan saat ini mencakup:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS
  • android.os.usertype.profile.CLONE
  • android.os.usertype.profile.PRIVATE

OEM memiliki kemampuan untuk mengonfigurasi jenis pengguna ini dengan menempatkan file frameworks/base/core/res/res/xml/config_user_types.xml. Hal ini memfasilitasi perubahan konfigurasi default untuk setiap jenis pengguna, termasuk batasan default, ikon, badge, dan jumlah maksimum pengguna yang diizinkan.

Selain jenis pengguna AOSP yang dapat dikonfigurasi, OEM dapat menentukan jenis profil baru menggunakan file frameworks/base/core/res/res/xml/config_user_types.xml. Hal ini memungkinkan OEM memperkenalkan jenis profil non-terkelola mereka sendiri jika diinginkan. Namun, OEM bertanggung jawab untuk melakukan modifikasi platform sebagaimana diperlukan untuk mendukung perubahan, termasuk mengubah kode apa pun yang memeriksa profil terkelola agar sekarang menangani jenis profil baru jika sesuai.

Mengaktifkan fitur multi-pengguna

Fitur multi-pengguna dinonaktifkan secara default. Untuk mengaktifkan fitur ini, produsen perangkat harus menentukan overlay resource yang menggantikan nilai berikut di frameworks/base/core/res/res/values/config.xml:

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

Untuk menerapkan overlay ini dan mengaktifkan pengguna tamu dan sekunder di perangkat, gunakan fitur DEVICE_PACKAGE_OVERLAYS dari sistem build Android untuk mengganti nilai untuk:

  • config_multiuserMaximumUsers dengan nilai yang lebih besar dari 1
  • config_enableMultiUserUI dengan true

Produsen perangkat dapat menentukan jumlah maksimum pengguna. Jika produsen perangkat atau pihak lain telah mengubah setelan, mereka harus memastikan SMS dan telepon berfungsi seperti yang ditentukan dalam Dokumen Definisi Kompatibilitas Android (CDD).

Mengelola beberapa pengguna

Pengelolaan pengguna dan profil (kecuali profil yang dibatasi) dilakukan oleh aplikasi yang memanggil API secara terprogram di class DevicePolicyManager untuk membatasi penggunaan.

Perusahaan dapat menggunakan pengguna dan profil untuk mengelola masa aktif dan cakupan aplikasi dan data di perangkat, menggunakan jenis yang diuraikan di atas bersama dengan DevicePolicyManager dan UserManager API untuk membuat solusi unik yang disesuaikan dengan kasus penggunaan mereka.

Perilaku sistem multi-pengguna

Saat pengguna ditambahkan ke perangkat, beberapa fungsi akan dibatasi saat pengguna lain berada di latar depan. Karena data aplikasi dipisahkan menurut pengguna, status aplikasi tersebut berbeda-beda menurut pengguna. Misalnya, email yang ditujukan untuk akun pengguna yang saat ini tidak menjadi fokus tidak akan tersedia hingga pengguna dan akun tersebut aktif di perangkat.

Catatan: Untuk mengaktifkan atau menonaktifkan fungsi ponsel dan SMS untuk pengguna sekunder, buka Setelan > Pengguna, pilih pengguna, lalu alihkan setelan Izinkan panggilan telepon dan SMS ke nonaktif.

Ada beberapa batasan saat pengguna sekunder berada di latar belakang. Misalnya, pengguna sekunder latar belakang tidak dapat menampilkan antarmuka pengguna atau membuat layanan Bluetooth aktif. Selain itu, proses sistem akan menghentikan pengguna sekunder latar belakang jika perangkat memerlukan memori tambahan untuk operasi di pengguna latar depan.

Saat menggunakan beberapa pengguna di perangkat Android, perhatikan perilaku berikut:

  • Notifikasi muncul untuk semua akun milik satu pengguna sekaligus.
  • Notifikasi untuk pengguna lain tidak akan muncul hingga aktif.
  • Setiap pengguna mendapatkan ruang kerja untuk menginstal dan menempatkan aplikasi.
  • Tidak ada pengguna yang memiliki akses ke data aplikasi pengguna lain.
  • Setiap pengguna dapat memengaruhi aplikasi yang diinstal untuk semua pengguna.
  • Pengguna admin dapat menghapus aplikasi atau bahkan seluruh ruang kerja yang dibuat oleh pengguna sekunder.
  • Secara default, informasi dari sesi pengguna Tamu tidak dipertahankan saat keluar dari mode Tamu. Jika ingin informasi dari sesi pengguna Tamu dipertahankan, Anda harus membuat file overlay resource yang menetapkan config_guestUserAllowEphemeralStateChange ke false. Untuk informasi selengkapnya tentang cara membuat file overlay, lihat Menyesuaikan build dengan overlay resource.

Multi-pengguna Android Automotive

Android Automotive mengandalkan penerapan multi-pengguna Android untuk memberikan pengalaman perangkat bersama.

Jenis pengguna otomotif

Selain jenis pengguna yang tercantum di atas, build Otomotif sangat cocok untuk jenis pengguna berikut:

  • Pengguna sistem headless. Pengguna sistem menghosting semua layanan sistem. Untuk mendukung beberapa pengguna di Automotive, pengguna sistem juga harus headless. Hanya ada satu pengguna headless. Pengguna sistem headless:
    • Harus selalu berjalan di latar belakang.
    • Tidak dapat dihapus atau diakses langsung oleh pengguna, kecuali dalam kasus Pemberian Perangkat. Misalnya, pengguna tidak dapat beralih ke Jenis pengguna ini untuk melakukan tugas seperti mendownload aplikasi atau menambahkan akun.
    • Hanya dapat dihapus dengan reset ke setelan pabrik.
  • Pengguna reguler. Sama seperti Pengguna Sekunder, yang dijelaskan di atas, kecuali bahwa pengguna sekunder:
    • Jangan berjalan di latar belakang (setelah beralih).
    • Dapat dibuat langsung melalui antarmuka pengguna.
    • Memiliki data aplikasi terpisah, tetapi berbagi beberapa setelan seluruh sistem. Misalnya, Wi-Fi dan Bluetooth.

Peringatan

Pengecualian berikut berlaku untuk pengguna sistem headless dan Pengguna reguler (sekunder) di Automotive:

  • Pengguna sistem headless tidak mendukung profil kerja.
  • Secara default, pengguna reguler (sekunder) memiliki akses penuh ke panggilan telepon dan SMS.
  • Secara default, pengguna reguler (sekunder) tidak berjalan di latar belakang.

Mengaktifkan pengguna sistem headless

Mulai Android 10, fitur multi-pengguna dapat digunakan untuk kasus penggunaan otomotif. Perbedaan penting meliputi:

  • Pengguna sistem bersifat headless dan hanya berjalan di latar belakang.
  • Pengguna manusia tidak berinteraksi dengan pengguna sistem.

Untuk mengaktifkan pengguna sistem headless, produsen perangkat harus mengaktifkan multi-pengguna seperti yang dijelaskan di atas.

Jika pengguna headless diaktifkan:
  1. Untuk mendeklarasikan perangkat sebagai Automotive, tambahkan fitur android.hardware.type.automotive.
  2. Setel ro.fw.headless_system_user ke true.
  3. Tetapkan nilai untuk config_multiuserMaximumUsers ke 2 (atau lebih tinggi).

Untuk informasi selengkapnya, lihat Dukungan Multi-Pengguna di Automotive.

Multi-pengguna Android Automotive di beberapa layar

Android 15 memungkinkan pengguna sekunder penuh (yang bukan pengguna latar depan saat ini) untuk meluncurkan aktivitas dan mendapatkan akses ke UI di layar tempat mereka ditetapkan. Fitur ini memungkinkan beberapa pengguna serentak di Android Automotive OS untuk mendukung pengalaman dalam mobil yang memberikan beberapa penumpang pengalaman UI khusus dalam satu instance Android.

Untuk mengaktifkan fitur ini, produsen perangkat harus menentukan overlay resource untuk mengganti nilai berikut di frameworks/base/core/res/res/values/config.xml:

<!-- Whether the device allows full users to start in background visible on displays.
Should be false for most devices, except automotive vehicle with passenger displays.
Note: this flag does NOT control the Communal Profile, which is not a full user. -->

<bool name="config_multiuserVisibleBackgroundUsers">false></bool>

Anda dapat bereksperimen dengan pengalaman khusus penumpang (tanpa pengemudi) dengan mengaktifkan konfigurasi tambahan berikut:

<!-- Whether the device allows users to start in background visible on the default display.
    Should be false for all devices in production. Can be enabled only for development use
    in passenger-only automotive build (i.e., when Android runs in a separate system in the
    back seat to manage the passenger displays).
    When set to true, config_multiuserVisibleBackgroundUsers must also be true. -->

<bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>

Di Android 15, Anda juga dapat mengaktifkan pengalaman dalam mobil untuk beberapa penumpang sebagai pengguna tamu. Untuk mengaktifkan beberapa pengguna tamu untuk penggunaan pengembangan, produsen perangkat harus menentukan overlay resource yang mengonfigurasi jumlah maksimum pengguna tamu yang diizinkan di frameworks/base/core/res/res/xml/config_user_types.xml, seperti dalam contoh ini:

<user-types>
   <full-type
       name="android.os.usertype.full.GUEST"
       max-allowed='4'>
       <default-restrictions no_factory_reset="true"
           no_remove_user="true"
           no_modify_accounts="true"
           no_install_apps="true"
           no_install_unknown_sources="true"
           no_uninstall_apps="true"/>
   </full-type>
</user-types>