Hỗ trợ nhiều người dùng

Android hỗ trợ nhiều người dùng trên một thiết bị Android bằng cách phân tách người dùng tài khoản và dữ liệu ứng dụng. Ví dụ: cha mẹ có thể cho phép con họ sử dụng máy tính bảng dành cho gia đình, gia đình có thể dùng chung ô tô hoặc nhóm phản hồi quan trọng có thể dùng chung một thiết bị di động để làm công việc trực tuyến.

Thuật ngữ

Android sử dụng các thuật ngữ sau đây khi mô tả người dùng và tài khoản Android.

Giải pháp chung

Tính năng quản lý thiết bị Android sử dụng các thuật ngữ chung sau:

  • Người dùng: Mỗi người dùng đều nhằm mục đích sử dụng bởi một người. Mỗi người dùng có dữ liệu ứng dụng riêng biệt và một số chế độ cài đặt riêng, như cũng như giao diện người dùng để chuyển đổi rõ ràng giữa những người dùng. Người dùng có thể chạy trong trong nền khi một người dùng khác đang hoạt động; hệ thống quản lý việc tắt để tiết kiệm tài nguyên khi thích hợp. Người dùng phụ có thể được tạo trực tiếp thông qua giao diện người dùng hoặc từ Thiết bị Quản trị.
  • Tài khoản: Tài khoản nằm trong một người dùng nhưng không được xác định bởi người dùng, cũng như không được người dùng xác định hoặc liên kết với bất kỳ tài khoản nhất định nào. Người dùng và hồ sơ chứa tài khoản duy nhất của riêng chúng nhưng không bắt buộc phải có hoạt động được. Danh sách tài khoản sẽ khác nhau tuỳ theo người dùng. Để biết thông tin chi tiết, tham chiếu đến Tài khoản lớp.
  • Hồ sơ: Hồ sơ có dữ liệu ứng dụng riêng nhưng có chung một số dữ liệu các chế độ cài đặt trên toàn hệ thống (ví dụ: Wi-Fi và Bluetooth). Hồ sơ là một tập hợp con và gắn liền với sự tồn tại của người dùng. Một người dùng có thể có nhiều hồ sơ. Hồ sơ được tạo thông qua Thiết bị Quản trị. Một hồ sơ luôn có mối liên kết không thể thay đổi thành người dùng là cha mẹ, được xác định bởi người dùng đã tạo hồ sơ. Hồ sơ không tồn tại bên ngoài vòng đời của người dùng tạo.
  • Ứng dụng: Dữ liệu của ứng dụng tồn tại trong từng người dùng được liên kết. Dữ liệu ứng dụng được đưa vào hộp cát từ các ứng dụng khác trong cùng một người dùng. Chiến dịch Quảng cáo ứng dụng trong cùng một người dùng có thể tương tác với nhau thông qua IPC. Để biết thông tin chi tiết, hãy tham khảo sang Android for enterprise.

Danh mục người dùng

Quản trị thiết bị Android sử dụng các danh mục người dùng sau.

  • Người dùng hệ thống: Đã thêm người dùng lần đầu vào thiết bị. Người dùng hệ thống không thể xoá ngoại trừ thao tác đặt lại về trạng thái ban đầu và luôn chạy ngay cả khi những người dùng khác ở nền trước. Người dùng này cũng có các đặc quyền và mà chỉ có thể thiết lập.
  • Người dùng hệ thống không có giao diện người dùng: Đã thêm người dùng lần đầu vào thiết bị nếu thiết bị đó được định cấu hình để chạy ở chế độ người dùng hệ thống không có giao diện người dùng (bằng cách đặt ro.fw.mu.headless_system_user=true). Người dùng hệ thống không có giao diện người dùng luôn chạy ở chế độ nền nên các thiết bị này yêu cầu thêm người dùng trên nền trước để cho phép người dùng tương tác.
  • Người dùng phụ: Bất kỳ người dùng nào được thêm vào thiết bị không phải hệ thống người dùng. Bạn có thể xoá người dùng phụ (có thể do chính họ hoặc quản trị viên thực hiện) người dùng) và không thể ảnh hưởng đến người dùng khác trên thiết bị. Những người dùng này có thể chạy trong ở chế độ nền và tiếp tục có kết nối mạng.
  • Người dùng khách: Người dùng phụ tạm thời. Người dùng là khách mời để nhanh chóng xoá người dùng khách khi không còn sử dụng được nữa. Có thể mỗi lần chỉ sử dụng một người dùng khách.
  • Người dùng quản trị: Người dùng có quyền tạo và xoá người dùng khác, cũng như kiểm soát một số chế độ cài đặt chung cho nhiều người dùng. Theo mặc định, chỉ người dùng hệ thống là quản trị viên.

Danh mục trang doanh nghiệp

Android sử dụng các danh mục hồ sơ sau:

  • Hồ sơ được quản lý: Do một ứng dụng tạo ra để chứa dữ liệu công việc và ứng dụng. Các ứng dụng này do chủ sở hữu hồ sơ (ứng dụng cung cấp) đã tạo hồ sơ công ty). Trình chạy, thông báo và việc cần làm gần đây là do người dùng chính và hồ sơ công ty chia sẻ.
  • Hồ sơ bị hạn chế: Sử dụng những tài khoản không dựa trên người dùng chính, người này có thể kiểm soát những ứng dụng có thể sử dụng trong hồ sơ bị hạn chế. Chỉ có trên máy tính bảng và thiết bị TV.
  • Sao chép hồ sơ: Android hỗ trợ tạo một người dùng hồ sơ sao chép riêng loại để cho phép chạy hai phiên bản của một ứng dụng trên thiết bị. AOSP không cung cấp hỗ trợ toàn diện cho tính năng này. Nhà sản xuất thiết bị gốc cần thêm các yếu tố tuỳ chỉnh để cung cấp phiên bản hoàn chỉnh cho người dùng Android.
  • Hồ sơ riêng tư: Đây là một không gian hộp cát tách biệt với phần còn lại của thiết bị, có thể được khoá riêng biệt với người dùng chính. Hồ sơ riêng tư chỉ có thể tồn tại cho người dùng chính. Khi hồ sơ riêng tư được mở khoá, các ứng dụng đó sẽ xuất hiện trong phần cài đặt. ShareSheet, Photopicker và DocsUI nhưng các ứng dụng sẽ bị ẩn khi bị khoá. Hồ sơ riêng tư có thể tồn tại trên cùng một thiết bị cùng với hồ sơ công việc và sao chép hồ sơ.

Kiểu người dùng

Android 11 đã đưa cách phân loại người dùng và hồ sơ ở trên thành kiểu người dùng, đại diện cho tất cả các loại người dùng và hồ sơ khác nhau mà nhiều người dùng Android cho phép của chúng tôi.

Các kiểu người dùng AOSP (Dự án nguồn mở Android) xác định trước được xác định trong frameworks/base/core/java/android/os/UserManager.java và hiện bao gồm:

  • 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 có thể định cấu hình các kiểu người dùng này bằng cách phủ Tệp frameworks/base/core/res/res/xml/config_user_types.xml. Việc này tạo điều kiện cho việc thay đổi cấu hình mặc định cho từng kiểu người dùng, bao gồm cả các hạn chế mặc định, biểu tượng, huy hiệu và số lượng người dùng tối đa được phép.

Ngoài các kiểu người dùng AOSP có thể định cấu hình, OEM có thể xác định các loại hồ sơ mới bằng cách sử dụng Tệp frameworks/base/core/res/res/xml/config_user_types.xml. Điều này cho phép OEM giới thiệu các loại hồ sơ không được quản lý của riêng họ nếu muốn. Tuy nhiên, OEM (Nhà sản xuất thiết bị gốc) có trách nhiệm điều chỉnh nền tảng theo yêu cầu để hỗ trợ các thay đổi, bao gồm sửa đổi bất kỳ mã nào kiểm tra hồ sơ được quản lý để hiện có thể xử lý hồ sơ mới nếu thích hợp.

Bật chế độ nhiều người dùng

Tính năng nhiều người dùng bị tắt theo mặc định. Người nhận bật tính năng này, nhà sản xuất thiết bị phải xác định một lớp phủ tài nguyên thay thế các giá trị sau trong 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>

Để áp dụng lớp phủ này và cho phép người dùng khách và người dùng phụ trên thiết bị, hãy sử dụng tính năng DEVICE_PACKAGE_OVERLAYS của hệ thống xây dựng Android để thay thế các giá trị cho:

  • config_multiuserMaximumUsers có giá trị lớn hơn 1
  • config_enableMultiUserUI với true

Nhà sản xuất thiết bị có thể quyết định số lượng người dùng tối đa. Nếu thiết bị nhà sản xuất hoặc những người khác đã sửa đổi cài đặt, họ phải đảm bảo tin nhắn SMS và điện thoại như được xác định trong Khả năng tương thích với Android Tài liệu định nghĩa (CDD).

Quản lý nhiều người dùng

Quản lý người dùng và trang doanh nghiệp (ngoại trừ những trang doanh nghiệp bị hạn chế) được thực hiện bởi các ứng dụng gọi API theo phương thức lập trình trong Lớp DevicePolicyManager để hạn chế việc sử dụng.

Doanh nghiệp có thể sử dụng người dùng và hồ sơ để quản lý toàn bộ thời gian và phạm vi ứng dụng cũng như dữ liệu trên thiết bị, bằng cách sử dụng các loại được nêu ở trên trong liên kết với DevicePolicyManagerUserManager API để xây dựng các giải pháp độc đáo phù hợp với trường hợp sử dụng của họ.

Hành vi của hệ thống nhiều người dùng

Khi người dùng được thêm vào một thiết bị, một số chức năng sẽ bị hạn chế khi một người dùng khác đang ở nền trước. Vì dữ liệu ứng dụng được tách riêng theo người dùng, trạng thái của các ứng dụng đó sẽ khác nhau tuỳ theo người dùng. Ví dụ: email dành cho một tài khoản của một người dùng hiện không được xem xét sẽ không có sẵn cho đến khi người dùng và tài khoản đó đang hoạt động trên thiết bị.

Lưu ý: Để bật hoặc tắt điện thoại và SMS dành cho người dùng phụ, hãy chuyển đến phần Cài đặt > Người dùng, hãy chọn người dùng và chuyển cài đặt Cho phép cuộc gọi điện thoại và SMS sang tắt.

Có một số hạn chế khi người dùng phụ chạy trong nền. Ví dụ: người dùng phụ ở chế độ nền không thể hiển thị giao diện người dùng hoặc Dịch vụ Bluetooth đang hoạt động. Ngoài ra, quá trình này sẽ tạm dừng ở chế độ nền người dùng phụ nếu thiết bị cần thêm bộ nhớ để thực hiện các thao tác trong người dùng trên nền trước.

Khi sử dụng nhiều người dùng trên một thiết bị Android, hãy tuân thủ những điều sau hành vi cụ thể:

  • Thông báo xuất hiện cùng lúc trên tất cả tài khoản của một người dùng.
  • Thông báo dành cho người dùng khác sẽ không xuất hiện cho đến khi hoạt động.
  • Mỗi người dùng sẽ có một không gian làm việc để cài đặt và đặt ứng dụng.
  • Không người dùng nào có quyền truy cập vào dữ liệu ứng dụng của người dùng khác.
  • Bất kỳ người dùng nào cũng có thể ảnh hưởng đến ứng dụng đã cài đặt cho tất cả người dùng.
  • Người dùng quản trị có thể xoá ứng dụng hoặc thậm chí là toàn bộ không gian làm việc đã thiết lập bởi người dùng phụ.
  • Theo mặc định, thông tin từ phiên người dùng Khách không tồn tại khi thoát khỏi Chế độ khách. Nếu muốn thông tin từ phiên người dùng Khách duy trì, bạn phải tạo tài nguyên tệp lớp phủ đặt config_guestUserAllowEphemeralStateChange thành false Để biết thêm thông tin về cách tạo tệp lớp phủ, hãy tham khảo Tuỳ chỉnh bản dựng bằng lớp phủ tài nguyên.

Nhiều người dùng trên Android Automotive

Android Automotive dựa vào cách triển khai nhiều người dùng của Android để cung cấp thiết bị dùng chung của bạn.

Các kiểu người dùng Automotive

Ngoài những kiểu người dùng nêu trên, phiên bản Automotive cũng nổi bật với những kiểu người dùng này người dùng:

  • Người dùng hệ thống không có giao diện người dùng. Người dùng hệ thống lưu trữ tất cả dịch vụ hệ thống. Để hỗ trợ nhiều người dùng trên Automotive, người dùng hệ thống cũng phải không có giao diện người dùng. Chỉ có một người dùng không có giao diện người dùng. Người dùng hệ thống không có giao diện người dùng:
    • Phải luôn chạy trong nền.
    • Người dùng không thể trực tiếp xoá hoặc truy cập, ngoại trừ trường hợp Thiết bị Cấp phép. Ví dụ: người dùng không thể chuyển sang Loại người dùng này để thực hiện các thao tác như tải ứng dụng xuống hoặc thêm tài khoản.
    • Chỉ có thể xoá khi bạn đặt lại về trạng thái ban đầu.
  • Người dùng thông thường. Tương tự như Người dùng phụ, như mô tả ở trên, ngoại trừ người dùng phụ người dùng:
    • Không chạy trong nền (sau khi đã rời khỏi ứng dụng).
    • Có thể được tạo trực tiếp thông qua giao diện người dùng.
    • Có dữ liệu ứng dụng riêng biệt nhưng có chung một số chế độ cài đặt trên toàn hệ thống. Ví dụ: Wi-Fi và Bluetooth.

Chú ý

Các trường hợp ngoại lệ sau áp dụng cho người dùng hệ thống không có giao diện người dùng và Người dùng thông thường (phụ) ở Ô tô:

  • Người dùng hệ thống không có giao diện người dùng không hỗ trợ hồ sơ công việc.
  • Theo mặc định, người dùng thông thường (phụ) có toàn quyền truy cập vào các cuộc gọi điện thoại và tin nhắn.
  • Theo mặc định, người dùng thông thường (phụ) không chạy trong nền.

Cho phép người dùng hệ thống không có giao diện người dùng

Kể từ Android 10, bạn có thể dùng tính năng nhiều người dùng cho các trường hợp sử dụng trên ô tô. Lưu ý quan trọng bao gồm:

  • Người dùng hệ thống không có giao diện người dùng và chỉ chạy trong nền.
  • Người dùng thực không tương tác với người dùng hệ thống.

Để cho phép người dùng hệ thống không có giao diện người dùng, nhà sản xuất thiết bị phải bật chế độ nhiều người dùng như mô tả ở trên.

Khi bật chế độ người dùng không có giao diện người dùng:
  1. Để khai báo thiết bị là Automotive, hãy thêm tính năng này android.hardware.type.automotive.
  2. Đặt ro.fw.headless_system_user thành true.
  3. Đặt giá trị cho config_multiuserMaximumUsers thành 2 (hoặc cao hơn).

Để biết thêm thông tin, hãy xem Hỗ trợ nhiều người dùng trong Automotive.

Nhiều người dùng Android Automotive trên nhiều màn hình

Một tính năng thử nghiệm mới trong Android 14 cho phép người dùng phụ có quyền truy cập đầy đủ (không phải là người dùng nền trước hiện tại) để khởi chạy các hoạt động và nhận truy cập vào giao diện người dùng trên màn hình mà họ được chỉ định. Tính năng này cho phép nhiều người dùng đồng thời trong Android Automotive OS để hỗ trợ trải nghiệm trong ô tô cung cấp nhiều hành khách bằng trải nghiệm giao diện người dùng chuyên biệt trong một phiên bản Android duy nhất.

Để bật tính năng này cho mục đích phát triển, nhà sản xuất thiết bị phải xác định lớp phủ tài nguyên để thay thế giá trị sau trong frameworks/base/core/res/res/values/config.xml:

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

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

Bạn có thể thử nghiệm trải nghiệm chỉ dành cho hành khách (không có người lái xe) bằng cách bật các tính năng sau cấu hình bổ sung:

<!-- 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>

Trên Android 14, bạn có thể bật trải nghiệm trong ô tô cho nhiều hành khách là người dùng khách. Để cho phép nhiều người dùng khách phát triển, hãy thiết bị nhà sản xuất phải xác định một lớp phủ tài nguyên sẽ định cấu hình số lượng khách tối đa cho phép người dùng ở frameworks/base/core/res/res/xml/config_user_types.xml, chẳng hạn như ví dụ bên dưới:

<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>