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 tách biệt tài khoản người dùng và dữ liệu ứng dụng. Ví dụ: cha mẹ có thể cho phép con cái họ sử dụng máy tính bảng của gia đình, một gia đình có thể dùng chung ô tô hoặc nhóm phản ứng khẩn cấp có thể dùng chung thiết bị di động để thực hiện nhiệm vụ theo yêu cầu.

Thuật ngữ

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

Tổng quan

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 được thiết kế để sử dụng bởi 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ố cài đặt riêng cũng như giao diện người dùng để chuyển đổi rõ ràng giữa những người dùng. Một người dùng có thể chạy ở chế độ nền khi người dùng khác đang hoạt động; hệ thống quản lý việc tắt người dùng để bảo tồn 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ừ ứng dụng Quản trị thiết bị .
  • Tài khoản: Tài khoản được chứa trong một người dùng nhưng không được người dùng xác định và người dùng cũng không được xác định hoặc liên kết với bất kỳ tài khoản cụ thể nào. Người dùng và hồ sơ chứa các tài khoản duy nhất của riêng họ nhưng không bắt buộc phải có tài khoản để hoạt động. Danh sách các tài khoản khác nhau tùy theo người dùng. Để biết chi tiết, hãy tham khảo định nghĩa lớp Tài khoản .
  • Cấu hình: Cấu hình có dữ liệu ứng dụng riêng biệt nhưng chia sẻ một số 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ị . Hồ sơ luôn có mối liên kết bất biến với người dùng chính, được xác định bởi người dùng đã tạo hồ sơ. Hồ sơ không tồn tại ngoài thời gian tồn tạ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 đóng hộp cát từ các ứng dụng khác trong cùng một người dùng. Các ứ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 chi tiết, hãy tham khảo Android dành cho doanh nghiệp .

Danh mục người dùng

Quản trị thiết bị Android sử dụng các loại 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ể bị xóa ngoại trừ bằng cách khôi phục cài đặt gốc 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à 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 đầu: Người dùng đầu tiên được thêm 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 đầu (bằng cách đặt ro.fw.mu.headless_system_user=true ). Người dùng hệ thống không đầu luôn chạy ở chế độ nền, vì vậy các thiết bị như vậy yêu cầu thêm người dùng tiền cảnh để 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 là người dùng hệ thống. Người dùng phụ có thể bị xóa (tự họ hoặc bởi người dùng quản trị viên) và không thể tác động đến những người dùng khác trên thiết bị. Những người dùng này có thể chạy ở 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 tùy chọn rõ ràng để nhanh chóng xóa người dùng khách khi tính năng này không còn hữu dụng. 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à xóa người dùng khác cũng như kiểm soát một số cài đặt chung của 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 hồ sơ

Android sử dụng các loại hồ sơ sau:

  • Hồ sơ được quản lý: Được tạo bởi một ứng dụng để chứa dữ liệu công việc và ứng dụng. Chúng được quản lý độc quyền bởi chủ sở hữu hồ sơ (ứng dụng đã tạo hồ sơ công ty). Trình khởi chạy, thông báo và các tác vụ gần đây được chia sẻ bởi người dùng chính và hồ sơ công ty.
  • Hồ sơ bị hạn chế: Sử dụng tài khoản dựa trên người dùng chính, người có thể kiểm soát những ứng dụng nào có sẵn trên hồ sơ bị hạn chế. Chỉ có sẵn trên máy tính bảng và thiết bị truyền hình.
  • Hồ sơ sao chép: Android hỗ trợ tạo loại người dùng hồ sơ sao chép riêng biệt để 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. Các OEM cần thêm các tùy chỉnh để cung cấp tính năng hoàn chỉnh cho người dùng Android.

Loại người dùng

Android 11 đã xây dựng hệ thống phân loại người dùng và hồ sơ ở 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ơ khác nhau được tính năng Nhiều người dùng của Android cho phép.

Các loại người dùng AOSP được 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

OEM có khả năng định cấu hình các loại người dùng này bằng cách phủ lên tệp frameworks/base/core/res/res/xml/config_user_types.xml . Điều này tạo điều kiện thuận lợi cho việc thay đổi cấu hình mặc định cho từng loại người dùng, bao gồm 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 các 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, trách nhiệm của OEM là thực hiện các sửa đổi nền tảng theo yêu cầu để hỗ trợ các thay đổi, bao gồm sửa đổi mọi mã kiểm tra hồ sơ được quản lý để xử lý loại hồ sơ mới nếu thích hợp.

Kích hoạt 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 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 những người khác đã sửa đổi cài đặt, 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 Tương thích 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ừ các hồ sơ bị hạn chế) được thực hiện bởi các ứng dụng gọi API theo chương trình trong lớp DevicePolicyManager để hạn chế sử dụng.

Doanh nghiệp có thể sử dụng người dùng và hồ sơ để quản lý vòng đời cũng như phạm vi của ứng dụng và dữ liệu trên thiết bị, sử dụng các loại được nêu ở trên kết hợp với API DevicePolicyManagerUserManager để 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 thiết bị, một số chức năng sẽ bị hạn chế khi người dùng khác ở phía trước. Vì dữ liệu ứng dụng được phân tách theo người dùng nên trạng thái của các ứng dụng đó sẽ khác nhau tùy theo người dùng. Ví dụ: email dành cho tài khoản của người dùng hiện không được chú ý sẽ không khả dụng 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 đi tới Cài đặt > Người dùng , 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.

Một số hạn chế tồn tại khi người dùng phụ ở chế độ nền. Ví dụ: người dùng phụ ở 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, quy trình hệ thống sẽ tạm dừng người dùng phụ ở nền nếu thiết bị cần thêm bộ nhớ cho các hoạt động ở người dùng nền trước.

Khi tuyển dụng nhiều người dùng trên thiết bị Android, hãy ghi nhớ hành vi sau:

  • Thông báo 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 không xuất hiện cho đến khi hoạt động.
  • Mỗi người dùng 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ể xóa ứng dụng hoặc thậm chí toàn bộ không gian làm việc do người dùng phụ thiết lập.
  • 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 bạn muốn thông tin từ phiên người dùng Khách được duy trì, bạn phải tạo 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 Tùy chỉnh bản dựng bằng lớp phủ tài nguyên .

Android Automotive nhiều người dùng

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

Loại người dùng ô tô

Ngoài các loại người dùng được liệt kê ở trên, các bản dựng Ô tô còn đáng chú ý đối với những loại người dùng sau:

  • Người dùng hệ thống không đầu. Người dùng hệ thống lưu trữ tất cả các dịch vụ hệ thống. Để hỗ trợ nhiều người dùng trên Ô tô, người dùng hệ thống cũng phải không có đầu . Chỉ có một người dùng không đầu. Người dùng hệ thống không đầu:
    • Phải luôn chạy ở chế độ nền.
    • Người dùng không thể xóa hoặc truy cập trực tiếp ngoại trừ trường hợp Cung cấp thiết bị. 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 tác vụ như tải xuống ứng dụng hoặc thêm tài khoản.
    • Chỉ có thể xóa được bằng cách khôi phục cài đặt gốc.
  • Người dùng thường xuyên. Giống như Người dùng phụ , được mô tả ở trên, ngoại trừ người dùng phụ:
    • Không chạy ngầm (sau khi đã tắt).
    • Có thể được tạo trực tiếp thông qua giao diện người dùng.
    • Đã tách riêng dữ liệu ứng dụng nhưng chia sẻ một số cài đặt trên toàn hệ thống. Ví dụ: Wi-Fi và Bluetooth.

Hãy cẩn thận

Các trường hợp ngoại lệ sau đây áp dụng cho người dùng hệ thống không đầu và Người dùng thông thường (phụ) trong Ô tô:

  • Người dùng hệ thống không đầu 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 ở chế độ nền.

Cho phép người dùng hệ thống không đầu

Kể từ Android 10, tính năng nhiều người dùng có thể được sử dụng cho các trường hợp sử dụng ô tô. Sự khác biệt quan trọng bao gồm:

  • Người dùng hệ thống không có đầu và chỉ chạy ở chế độ nền.
  • Người dùng con người không tương tác với người dùng hệ thống.

Để kích hoạt người dùng hệ thống không đầu, nhà sản xuất thiết bị phải kích hoạt nhiều người dùng như mô tả ở trên.

Khi người dùng không đầu được kích hoạt:
  1. Để khai báo thiết bị là Automotive thì thêm tính năng 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 ô tô.

Android Automotive nhiều người dùng 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 là người dùng nền trước hiện tại) khởi chạy các hoạt động và có quyề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ô, mang đến cho nhiều hành khách trải nghiệm giao diện người dùng chuyên dụng 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ó tài xế) bằng cách bật cấu hình bổ sung sau:

<!-- 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ể kích hoạt trải nghiệm trong xe cho nhiều hành khách với tư cách là người dùng khách. Để cho phép nhiều người dùng khách sử dụng 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 định cấu hình số lượng người dùng khách tối đa được phép trong frameworks/base/core/res/res/xml/config_user_types.xml , 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>