Android 11 đã giới thiệu khái niệm về 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 được 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 loại người dùng AOSP được xác định trước và xác định các loại hồ sơ mới. Hãy xem phần về các 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 các loại người dùng.
Tuỳ chỉnh
Để tuỳ chỉnh các loại người dùng AOSP và xác định các loại hồ sơ mới, OEM phải phủ config_user_types.xml
bằng các chế độ tuỳ chỉnh mà họ muốn. Tệp config_user_types.xml
chứa một bản triển khai tham chiếu và danh sách đầy đủ các thuộc tính có thể định cấu hình.
Mọi thuộc tính (chẳng hạn như default-restrictions
) được chỉ định trong tệp config_user_types.xml
sẽ ghi đè giá trị mặc định của AOSP. Mọi thuộc tính không được chỉ định đều tuân theo giá trị mặc định của AOSP. Việc thay đổi hầu hết các thuộc tính, chẳng hạn như thuộc tính huy hiệu của loại hồ sơ, sẽ ảnh hưởng đến những người dùng hiện tại thuộc 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 được tạo, nên việc sửa đổi thuộc tính cụ thể này (trong trường hợp tệp config_user_types.xml
bị thay đổi bởi OTA) sẽ không ảnh hưởng đến những người dùng đã tồn tại trước đó. Tương tự, việc chỉ định số lượng người dùng tối đa chỉ áp dụng khi bạn tạo người dùng mới; người dùng hiện tại sẽ không bị xoá.
Sau đây là các hạn chế hiện tại đối với việc tuỳ chỉnh cho từng loại người dùng:
- Bạn có thể tuỳ chỉnh và xác định đầy đủ các hồ sơ. Trong trường hợp này, OEM chịu trách nhiệm thực hiện các sửa đổi nền tảng theo yêu cầu để hồ sơ tuỳ chỉnh của họ được hỗ trợ trong Android, vì AOSP chỉ hỗ trợ các loại người dùng AOSP được xác định trước.
- Bạn không thể xác định người dùng đầy đủ và chỉ có thể tuỳ chỉnh thuộc tính
default-restrictions
của họ. - Bạn 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ằng cách sử dụngcom.android.internal.R.array.config_defaultFirstUserRestrictions
. Hãy xemconfig.xml
để biết thêm thông tin.
Sửa đổi các kiểu người dùng hiện có
Bạn có thể tuỳ chỉnh các loại người dùng hiện có bằng cách ghi đè các thuộc tính của họ như minh hoạ 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ẫu mã này, các loại 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 toàn quyền
android.os.usertype.full.SECONDARY
:- Hạn chế mặc định của
no_sms
được đặt thành true bằng cách chỉ địnhdefault-restrictions no_sms="true"
.
- Hạn chế mặc định của
Người dùng trên hồ sơ
android.os.usertype.profile.MANAGED
:- Mỗi người dùng là cha mẹ được phép có 2 hồ sơ bằng cách đặt
max-allowed-per-parent='2'
. - Các thuộc tính huy hiệu được đặt thành các giá trị đã chọn bằng cách sử dụng
icon-badge
,badge-plain
,badge-no-background
,badge-labels
,badge-colors
. - Các quy định 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"
.
- Mỗi người dùng là cha mẹ được phép có 2 hồ sơ bằng cách đặt
Hãy 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 các 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 đoạn mã mẫu này, loại hồ sơ com.example.profilename
được xác định như sau:
max-allowed-per-parents
được đặt thành2
cho 2 hồ sơ trên 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
sang 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.