Android 11 ได้นำเสนอแนวคิดเกี่ยวกับประเภทผู้ใช้ที่กำหนดไว้อย่างชัดเจน ซึ่งแสดงถึงผู้ใช้ประเภทต่างๆ ทั้งหมดที่ฟีเจอร์ผู้ใช้หลายคนหนึ่งเครื่องของ Android อนุญาต ฟีเจอร์นี้ช่วยให้ OEM ปรับแต่งประเภทผู้ใช้ AOSP ที่กำหนดไว้ล่วงหน้าและกำหนดประเภทโปรไฟล์ใหม่ได้ ดูข้อมูลเพิ่มเติมได้ที่ส่วนเกี่ยวกับ ประเภทผู้ใช้
หน้านี้แสดงรายละเอียดเกี่ยวกับหลักเกณฑ์การใช้งานที่จำเป็นสำหรับการปรับแต่งประเภทผู้ใช้
การปรับแต่ง
หากต้องการปรับแต่งประเภทผู้ใช้ AOSP และกำหนดประเภทโปรไฟล์ใหม่ OEM
ต้องวางซ้อน
config_user_types.xml
ด้วยการปรับแต่งที่ต้องการ ไฟล์ config_user_types.xml มีการใช้งานอ้างอิงและรายการแอตทริบิวต์ที่กำหนดค่าได้ที่ครอบคลุม
แอตทริบิวต์ใดก็ตาม เช่น default-restrictions ที่ระบุไว้ในไฟล์ config_user_types.xml จะเขียนทับค่าเริ่มต้นของ AOSP แอตทริบิวต์ที่ไม่ได้ระบุไว้จะใช้ค่าเริ่มต้นของ AOSP การเปลี่ยนแปลงแอตทริบิวต์ส่วนใหญ่ เช่น แอตทริบิวต์ป้ายของประเภทโปรไฟล์ จะส่งผลต่อผู้ใช้ที่มีอยู่ก่อนแล้วของประเภทผู้ใช้นั้น
อย่างไรก็ตาม เนื่องจากระบบจะใช้ default-restrictions เมื่อสร้างผู้ใช้เท่านั้น การแก้ไขแอตทริบิวต์นี้โดยเฉพาะในกรณีที่ไฟล์ config_user_types.xml เปลี่ยนไปโดย OTA จะไม่มีผลต่อผู้ใช้ที่มีอยู่ก่อนแล้ว ในทำนองเดียวกัน การระบุจำนวนผู้ใช้สูงสุดจะมีผลเมื่อสร้างผู้ใช้ใหม่เท่านั้น ระบบจะไม่นำผู้ใช้ที่มีอยู่ออก
ข้อจำกัดในการปรับแต่งปัจจุบันสำหรับผู้ใช้แต่ละประเภทมีดังนี้
- โปรไฟล์สามารถปรับแต่งและกำหนดได้อย่างเต็มที่ ในกรณีนี้ OEM มีหน้าที่รับผิดชอบในการทำการเปลี่ยนแปลงแพลตฟอร์มตามที่จำเป็นเพื่อให้ระบบรองรับโปรไฟล์ที่กำหนดเองใน Android เนื่องจาก AOSP รองรับเฉพาะประเภทผู้ใช้ AOSP ที่กำหนดไว้ล่วงหน้า
- ไม่สามารถกำหนดผู้ใช้เต็มรูปแบบและปรับแต่งได้เฉพาะแอตทริบิวต์
default-restrictions - ไม่สามารถปรับแต่งผู้ใช้ระบบโดยใช้กลไกนี้ ในกรณีนี้ คุณสามารถตั้งค่า
default-restrictionsได้โดยใช้com.android.internal.R.array.config_defaultFirstUserRestrictionsดูข้อมูลเพิ่มเติมได้ที่config.xml
แก้ไขประเภทผู้ใช้ที่มีอยู่
คุณสามารถปรับแต่งประเภทผู้ใช้ที่มีอยู่ได้โดยการเขียนทับแอตทริบิวต์ตามที่แสดงในตัวอย่างโค้ดต่อไปนี้
<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>
ในตัวอย่างโค้ดนี้ ระบบจะปรับแต่งประเภทผู้ใช้ AOSP ต่อไปนี้โดยการแก้ไขพร็อพเพอร์ตี้ที่รองรับ
ผู้ใช้เต็มรูปแบบ
android.os.usertype.full.SECONDARY- ระบบจะตั้งค่าการจำกัดเริ่มต้นของ
no_smsเป็น "จริง" โดยระบุdefault-restrictions no_sms="true"
- ระบบจะตั้งค่าการจำกัดเริ่มต้นของ
ผู้ใช้โปรไฟล์
android.os.usertype.profile.MANAGED- ระบบอนุญาต 2 โปรไฟล์สำหรับผู้ใช้หลักแต่ละรายโดยตั้งค่า
max-allowed-per-parent='2' - ระบบจะตั้งค่าแอตทริบิวต์ป้ายเป็นค่าที่เลือกโดยใช้
icon-badge,badge-plain,badge-no-background,badge-labels,badge-colors - ระบบจะตั้งค่าการจำกัดเริ่มต้นของ
no_smsและno_outgoing_callsเป็น จริงโดยระบุdefault-restrictions no_sms="true" no_outgoing_calls="true"
- ระบบอนุญาต 2 โปรไฟล์สำหรับผู้ใช้หลักแต่ละรายโดยตั้งค่า
โปรดดู UserTypeFactory.java และ UserTypeDetails.java
เพื่อดูความหมายและค่าเริ่มต้นของพร็อพเพอร์ตี้เหล่านี้
กำหนดประเภทโปรไฟล์ที่กำหนดเอง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีกำหนดประเภทโปรไฟล์ใหม่ที่กำหนดเอง
<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>
ในตัวอย่างโค้ดนี้ ระบบจะกำหนดประเภทโปรไฟล์ com.example.profilename ดังนี้
ตั้งค่า
max-allowed-per-parentsเป็น2สำหรับ 2 โปรไฟล์ต่อผู้ใช้หลักchange-user-type: แปลงโปรไฟล์ที่มีการจัดการ ทั้งหมด ที่มีอยู่ของประเภทandroid.os.usertype.profile.MANAGEDเป็นประเภทcom.example.profilenameใหม่เมื่ออัปเกรดอุปกรณ์จากเวอร์ชันuser-typeที่<= 1ผ่าน OTA