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 điện thoại.

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 là một người thực tế khác nhau. 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, chẳng hạn 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. Bạn có thể tạo người dùng phụ trực tiếp thông qua giao diện người dùng hoặc từ ứng dụng Quản trị thiết bị.
  • 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ơ đã tách riêng dữ liệu ứng dụng nhưng chia sẻ một số 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 ứng dụng Quản trị thiết bị. Một hồ sơ luôn có mối liên kết không thể thay đổi với một người dùng chính, do người dùng đã tạo hồ sơ xác định. 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 mỗi người dùng được liên kết. Dữ liệu ứng dụng được chuyển sang 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 Android cho doanh nghiệp.

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: Người dùng đầu tiên được thêm 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à chế độ cài đặt đặc biệt mà chỉ người dùng này mới có thể đặt.
  • 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 những 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 khách có một tuỳ chọn rõ ràng để xoá nhanh người dùng khách khi không cần thiết nữa. Mỗi lần chỉ có thể có 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 mới 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 các tài khoản dựa trên người dùng là cha mẹ. Người dùng này có thể kiểm soát những ứng dụng có trên 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 (OEM) cần thêm các tuỳ chỉnh để cung cấp tính năng 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 đã xây dựng cách phân loại người dùng và hồ sơ nêu trên thành các loại người dùng được xác định rõ ràng, đại diện cho tất cả các loại người dùng và hồ sơ mà tính năng Nhiều người dùng trên Android cho phép.

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 loại 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 việc 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 tính năng nhiều người dùng

Tính năng nhiều người dùng bị tắt theo mặc định. Để 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 nhà sản xuất thiết bị hoặc các bên khác đã sửa đổi chế độ cài đặt, thì họ phải đảm bảo SMS và điện thoại hoạt động như được xác định trong Tài liệu định nghĩa về khả năng tương thích với Android (CDD).

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

Việc quản lý người dùng và hồ sơ (ngoại trừ hồ sơ bị hạn chế) được thực hiện bằng 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 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 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 tài khoản của một người dùng hiện không nằm trong tiêu điểm sẽ không xuất hiện cho đến khi người dùng và tài khoản đó hoạt động trên thiết bị.

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

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 kích hoạt các dịch vụ Bluetooth. Ngoài ra, quá trình hệ thống tạm dừng chạy ở 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 sẽ xuất hiện cùng lúc cho tất cả tài khoản của một người dùng.
  • Thông báo cho người dùng khác sẽ không xuất hiện cho đến khi họ đang 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 các ứ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 do người dùng phụ tạo.
  • 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 lưu giữ lại, bạn phải tạo một tệp lớp phủ tài nguyên đặ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 việc triển khai nhiều người dùng của Android để mang lại trải nghiệm thiết bị dùng chung.

Các kiểu người dùng Google 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ể 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 đây á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ụ) trong ngành Ô 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.

Bật 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ô. Có một số điểm khác biệt quan trọng như sau:

  • Người dùng hệ thống không có giao diện người dùng và chỉ chạy ở chế độ 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 người dùng không có giao diện người dùng được bật:
  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 phần 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ụ đầy đủ (không phải người dùng trên nền trước hiện tại) chạy các hoạt động và truy cập vào giao diện người dùng trên màn hình được chỉ định cho họ. 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 trên ô tô, cung cấp cho nhiều hành khách trải nghiệm giao diện người dùng chuyên biệt trong một phiên bản Android.

Để 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 một 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>

Trong Android 14, bạn có thể bật trải nghiệm trên ô tô cho nhiều người ngồi trên xe dưới dạng 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>