Android 11 đã giới thiệu khái niệm được định nghĩa rõ ràng các kiểu người dùng khác nhau, đại diện cho tất cả các kiểu người dùng khác nhau được cho phép theo Tính năng Nhiều người dùng của Android. Với tính năng này, OEM có thể tuỳ chỉnh các định dạng đã xác định trước Các loại người dùng AOSP và xác định các loại hồ sơ mới. Xem phần này trên loại người dùng để biết thêm thông tin.
Trang này trình bày chi tiết các nguyên tắc triển khai cần thiết để tuỳ chỉnh kiểu người dùng.
Tuỳ chỉnh
Để tuỳ chỉnh kiểu người dùng AOSP và để xác định loại cấu hình mới, OEM
phải phủ config_user_types.xml
với các chế độ tuỳ chỉnh mong muốn. Tệp config_user_types.xml
chứa cách triển khai tham chiếu và danh sách đầy đủ các tên có thể định cấu hình
.
Bất kỳ thuộc tính nào, chẳng hạn như default-restrictions
, được chỉ định trong
config_user_types.xml
, ghi đè tệp mặc định AOSP (Dự án nguồn mở Android). Bất kỳ thuộc tính nào
không được chỉ định, tuân theo mặc định của AOSP (Dự án nguồn mở Android). Thay đổi hầu hết các thuộc tính, chẳng hạn như
các thuộc tính huy hiệu của loại hồ sơ sẽ ảnh hưởng đến người dùng hiện có của loại người dùng đó.
Tuy nhiên, vì default-restrictions
chỉ được áp dụng tại thời điểm người dùng
đã tạo, sửa đổi thuộc tính cụ thể này, trong trường hợp
Tệp config_user_types.xml
do OTA thay đổi, không ảnh hưởng đến các tệp có sẵn
người dùng. Tương tự, việc chỉ định số người dùng tối đa chỉ áp dụng khi
tạo người dùng mới; người dùng hiện có không bị loại bỏ.
Sau đây là các hạn chế tuỳ chỉnh hiện tại cho từng kiểu người dùng:
- Bạn có thể xác định và tuỳ chỉnh đầy đủ các hồ sơ. Trong trường hợp này, OEM chịu trách nhiệm điều chỉnh nền tảng theo yêu cầu đối với các chiến dịch được hỗ trợ trong Android, vì AOSP chỉ hỗ trợ cấu hình được xác định trước Các kiểu người dùng AOSP (Dự án nguồn mở Android).
- Không thể xác định người dùng toàn quyền và chỉ có thể xác định thuộc tính
default-restrictions
của họ có thể được tuỳ chỉnh. - Không thể tuỳ chỉnh người dùng hệ thống bằng cơ chế này. Trong trường hợp này,
Bạn có thể đặt
default-restrictions
bằngcom.android.internal.R.array.config_defaultFirstUserRestrictions
. Xemconfig.xml
để biết thêm thông tin.
Sửa đổi loại người dùng hiện có
Bạn có thể tuỳ chỉnh kiểu người dùng hiện có bằng cách ghi đè các thuộc tính tương ứng như sau trong mã mẫu sau.
<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>
Trong mã mẫu này, các kiểu người dùng AOSP sau đây được tuỳ chỉnh bằng cách sửa đổi các thuộc tính được hỗ trợ.
Người dùng có toàn quyền
android.os.usertype.full.SECONDARY
:- Giới hạn mặc định đối với
no_sms
được đặt thành true bằng cách chỉ địnhdefault-restrictions no_sms="true"
.
- Giới hạn mặc định đối với
Người dùng hồ sơ
android.os.usertype.profile.MANAGED
:- Chế độ cài đặt cho phép hai hồ sơ đối với mỗi người dùng là cha mẹ
max-allowed-per-parent='2'
. - Thuộc tính huy hiệu được đặt thành giá trị mong muốn bằng cách sử dụng
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Các hạn chế mặc định của
no_sms
vàno_outgoing_calls
được đặt thành true bằng cách chỉ địnhdefault-restrictions no_sms="true" no_outgoing_calls="true"
.
- Chế độ cài đặt cho phép hai hồ sơ đối với mỗi người dùng là cha mẹ
Tham khảo UserTypeFactory.java
và UserTypeDetails.java
để biết ý nghĩa và giá trị mặc định của các thuộc tính này.
Xác định loại hồ sơ tuỳ chỉnh
Mã mẫu sau đây cho biết cách xác định các loại hồ sơ tuỳ chỉnh mới.
<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>
Trong mã mẫu này, loại hồ sơ com.example.profilename
là
được xác định như sau:
max-allowed-per-parents
được thiết lập thành2
cho 2 hồ sơ đối với mỗi người dùng là cha mẹ.change-user-type
: chuyển đổi tất cả hồ sơ được quản lý hiện có thuộc loạiandroid.os.usertype.profile.MANAGED
thành loạicom.example.profilename
mới khi nâng cấp thiết bị từ phiên bảnuser-type
của<= 1
thông qua OTA.