Android รองรับผู้ใช้หลายคนในอุปกรณ์ Android เครื่องเดียวโดยแยกบัญชีผู้ใช้และข้อมูลแอป เช่น ผู้ปกครองอาจอนุญาตให้บุตรหลานใช้แท็บเล็ตของครอบครัว ครอบครัวอาจแชร์รถยนต์ หรือทีมตอบกลับเหตุฉุกเฉินอาจแชร์อุปกรณ์เคลื่อนที่เพื่อรับหน้าที่เฝ้าระวัง
คำศัพท์
Android ใช้คําศัพท์ต่อไปนี้เมื่ออธิบายผู้ใช้และบัญชี Android
ทั่วไป
การจัดการอุปกรณ์ Android ใช้คำศัพท์ทั่วไปต่อไปนี้
- ผู้ใช้: ผู้ใช้แต่ละรายมีไว้สำหรับบุคคลที่แตกต่างกัน ผู้ใช้แต่ละคนมีข้อมูลแอปที่แตกต่างกันและการตั้งค่าบางอย่างที่ไม่ซ้ำกัน เช่น รวมถึงอินเทอร์เฟซผู้ใช้เพื่อสลับไปมาระหว่างผู้ใช้ได้อย่างชัดเจน ผู้ใช้เรียกใช้ใน พื้นหลังเมื่อมีการใช้งานผู้ใช้รายอื่น ต้องจัดการการปิดระบบ เพื่อประหยัดทรัพยากรได้ตามความเหมาะสม คุณสามารถสร้างผู้ใช้รองได้โดยตรงผ่านอินเทอร์เฟซผู้ใช้หรือจากแอปการดูแลระบบอุปกรณ์
- บัญชี: บัญชีอยู่ภายในผู้ใช้แต่ไม่ได้กำหนดไว้ โดยผู้ใช้ และผู้ใช้รายหนึ่งๆ ไม่ได้เป็นผู้กำหนดหรือลิงก์กับบัญชีใดๆ ผู้ใช้และ จะมีบัญชีเฉพาะของตนเองอยู่ แต่ไม่จำเป็นต้องมี บัญชีที่จะใช้งานได้ รายชื่อบัญชีจะแตกต่างกันไปตามผู้ใช้ โปรดดูรายละเอียด อ้างอิงถึง บัญชี class
- โปรไฟล์: โปรไฟล์มีข้อมูลแอปแยกต่างหาก แต่แชร์การตั้งค่าบางอย่างสำหรับทั้งระบบ (เช่น Wi-Fi และบลูทูธ) โปรไฟล์คือกลุ่มย่อย และเชื่อมโยงกับการมีอยู่ของผู้ใช้ ผู้ใช้สามารถมีได้หลายโปรไฟล์ โปรไฟล์สร้างขึ้นโดยใช้ อุปกรณ์ การดูแลระบบ โปรไฟล์จะมีการเชื่อมโยงที่เปลี่ยนแปลงไม่ได้เสมอ ผู้ใช้หลัก ที่กำหนดโดยผู้ใช้ที่สร้างโปรไฟล์ โปรไฟล์ไม่ อยู่นอกเหนือจากอายุการใช้งานของผู้ใช้ที่สร้าง
- แอป: ข้อมูลของแอปจะมีอยู่ในผู้ใช้แต่ละรายที่เชื่อมโยง ข้อมูลแอปจะได้รับแซนด์บ็อกซ์จากแอปอื่นๆ ภายในผู้ใช้รายเดียวกัน แอป ภายในผู้ใช้เดียวกันสามารถโต้ตอบระหว่างกันผ่าน IPC ได้ โปรดดูรายละเอียดที่ Android สำหรับองค์กร
หมวดหมู่ของผู้ใช้
การดูแลระบบอุปกรณ์ Android ใช้ผู้ใช้ในหมวดหมู่ต่อไปนี้
- ผู้ใช้ระบบ: ผู้ใช้รายแรกที่เพิ่มลงในอุปกรณ์ ผู้ใช้ระบบจะนำออกไม่ได้ ยกเว้นการรีเซ็ตเป็นค่าเริ่มต้น และผู้ใช้ระบบจะทำงานอยู่เสมอแม้ว่าผู้ใช้รายอื่นจะอยู่ในเบื้องหน้าก็ตาม ผู้ใช้รายนี้ยังมีสิทธิพิเศษและ ที่ตั้งค่าได้เท่านั้น
- ผู้ใช้ระบบแบบไม่มีส่วนหัว: มีการเพิ่มผู้ใช้ครั้งแรกลงในอุปกรณ์หากมีการกำหนดค่าอุปกรณ์ไว้
ให้ทำงานในโหมดผู้ใช้ระบบแบบไม่มีส่วนหัว (โดยการตั้งค่า
ro.fw.mu.headless_system_user=true
) ผู้ใช้ระบบแบบไม่มีส่วนหัวจะทำงานในเบื้องหลังเสมอ อุปกรณ์ดังกล่าวจึงต้องมีส่วนเพิ่มเติม ผู้ใช้ที่ทำงานอยู่เบื้องหน้าเพื่อเปิดใช้การโต้ตอบของผู้ใช้ - ผู้ใช้รอง: ผู้ใช้ที่เพิ่มลงในอุปกรณ์นอกเหนือจากผู้ใช้ระบบ สามารถนำผู้ใช้ออกรอง (ทั้งด้วยตนเองหรือโดยผู้ดูแลระบบ) ผู้ใช้) และไม่ส่งผลกระทบต่อผู้ใช้คนอื่นๆ ในอุปกรณ์ ผู้ใช้เหล่านี้จะทำงานในเบื้องหลังและเชื่อมต่อเครือข่ายได้ต่อไป
- ผู้ใช้ที่เป็นผู้เข้าร่วม: ผู้ใช้รองชั่วคราว ผู้ใช้ที่เป็นผู้มาเยือนมี ในการลบผู้ใช้ที่เป็นผู้มาเยือนอย่างรวดเร็วเมื่อการใช้ประโยชน์หมดลง ผู้ใช้ชั่วคราวจะมีได้เพียงคนเดียวในแต่ละครั้ง
- ผู้ใช้ที่ดูแลระบบ: ผู้ใช้ที่มีสิทธิ์สร้างและนำผู้ใช้รายอื่นๆ ออก และควบคุมการตั้งค่าทั่วไปสำหรับผู้ใช้หลายคน โดยค่าเริ่มต้น จะมีเพียงผู้ใช้ระบบเท่านั้นที่เป็นผู้ดูแลระบบ
หมวดหมู่ของโปรไฟล์
Android ใช้โปรไฟล์ในหมวดหมู่ต่อไปนี้
- โปรไฟล์ที่มีการจัดการ: สร้างโดยแอปเพื่อเก็บข้อมูลงานและแอป ซึ่งได้รับการจัดการโดยเจ้าของโปรไฟล์ (แอปที่ สร้างโปรไฟล์บริษัทแล้ว) ผู้ใช้หลักและโปรไฟล์ขององค์กรจะแชร์ Launcher, การแจ้งเตือน และงานล่าสุด
- โปรไฟล์ที่จำกัด: ใช้บัญชีตามผู้ใช้หลัก ซึ่งสามารถควบคุมแอปที่ใช้ได้ในโปรไฟล์ที่จำกัด ใช้ได้กับอุปกรณ์แท็บเล็ตและทีวีเท่านั้น
- โคลนโปรไฟล์: Android รองรับการสร้างผู้ใช้โปรไฟล์โคลนแยกต่างหาก ประเภทเพื่อเปิดใช้การเรียกใช้แอปเดียวสองอินสแตนซ์บนอุปกรณ์ AOSP ไม่มี การสนับสนุนแบบครบวงจร OEM ต้องเพิ่มการปรับแต่งเพื่อให้ผู้ใช้ Android ได้รับฟีเจอร์ที่สมบูรณ์
- โปรไฟล์ส่วนตัว: เป็นพื้นที่เสมือนแยกจากส่วนอื่นๆ ของอุปกรณ์ ซึ่งสามารถล็อกแยกจากผู้ใช้หลักได้ โปรไฟล์ส่วนตัวจะมีได้เฉพาะสำหรับผู้ใช้หลักเท่านั้น เมื่อโปรไฟล์ส่วนตัวปลดล็อกอยู่ แอปจะปรากฏในการตั้งค่า ShareSheet, Photopicker และ DocsUI แต่แอปจะถูกซ่อนเมื่อล็อก โปรไฟล์ส่วนตัวจะอยู่ในอุปกรณ์เดียวกันพร้อมกับโปรไฟล์งาน และ โคลนโปรไฟล์
ประเภทผู้ใช้
Android 11 ได้กำหนดการจัดประเภทผู้ใช้และโปรไฟล์ข้างต้นเป็นประเภทผู้ใช้ที่ชัดเจน ซึ่งแสดงถึงผู้ใช้และโปรไฟล์ประเภทต่างๆ ทั้งหมดที่ฟีเจอร์ผู้ใช้หลายคนของ Android อนุญาต
ประเภทผู้ใช้ AOSP ที่กําหนดไว้ล่วงหน้าจะกําหนดไว้ใน
frameworks/base/core/java/android/os/UserManager.java
และปัจจุบันมีดังนี้
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 สามารถกำหนดค่าผู้ใช้ประเภทเหล่านี้ได้โดยการวางซ้อนไฟล์ frameworks/base/core/res/res/xml/config_user_types.xml
ซึ่งจะช่วยให้เปลี่ยนการกำหนดค่าเริ่มต้นสำหรับผู้ใช้แต่ละประเภทได้ง่ายขึ้น รวมถึงข้อจำกัดเริ่มต้น ไอคอน ป้าย และจำนวนผู้ใช้สูงสุดที่อนุญาต
นอกเหนือจากประเภทผู้ใช้ AOSP ที่กําหนดค่าได้ OEM ยังกําหนดประเภทโปรไฟล์ใหม่ได้โดยใช้ไฟล์ frameworks/base/core/res/res/xml/config_user_types.xml
วิธีนี้ช่วยให้ OEM แนะนำประเภทโปรไฟล์ที่ไม่มีการจัดการของตนเองได้หากต้องการ
อย่างไรก็ตาม OEM มีหน้าที่ปรับเปลี่ยนแพลตฟอร์มตามที่จำเป็นเพื่อรองรับ
การเปลี่ยนแปลง ซึ่งรวมถึงการแก้ไขโค้ดที่ตรวจหาโปรไฟล์ที่มีการจัดการเพื่อจัดการโปรไฟล์ใหม่ด้วย
ประเภทที่เหมาะสม
เปิดใช้ฟีเจอร์ผู้ใช้หลายคน
ฟีเจอร์ผู้ใช้หลายคนจะปิดใช้อยู่โดยค่าเริ่มต้น หากต้องการเปิดใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ต้องกำหนดการวางซ้อนทรัพยากรที่จะแทนที่ค่าต่อไปนี้ใน 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>
หากต้องการใช้การวางซ้อนนี้และเปิดใช้ผู้ใช้ชั่วคราวและผู้ใช้รองในอุปกรณ์ ให้ใช้
คุณลักษณะ DEVICE_PACKAGE_OVERLAYS
ของระบบบิลด์ของ Android ที่จะมาแทนที่
ค่าสำหรับ
config_multiuserMaximumUsers
ที่มีค่ามากกว่า1
- จำนวนเงิน
config_enableMultiUserUI
ด้วยบัตรtrue
ผู้ผลิตอุปกรณ์จะกำหนดจำนวนผู้ใช้สูงสุดได้ หากผู้ผลิตอุปกรณ์หรือบุคคลอื่นแก้ไขการตั้งค่า ผู้ผลิตหรือบุคคลดังกล่าวต้องตรวจสอบว่า SMS และการโทรทํางานตามที่ระบุไว้ในเอกสารคําจํากัดความความเข้ากันได้ของ Android (CDD)
จัดการผู้ใช้หลายคน
การจัดการผู้ใช้และโปรไฟล์ (ยกเว้นโปรไฟล์ที่ถูกจํากัด) ดําเนินการโดยแอปที่เรียกใช้ API ในคลาส DevicePolicyManager
แบบเป็นโปรแกรมเพื่อจํากัดการใช้งาน
องค์กรสามารถใช้ผู้ใช้และโปรไฟล์เพื่อจัดการอายุการใช้งานและขอบเขตของแอปและข้อมูลในอุปกรณ์ได้โดยใช้ประเภทที่ระบุไว้ข้างต้นร่วมกับ DevicePolicyManager และ UserManager API เพื่อสร้างโซลูชันเฉพาะที่ปรับให้เหมาะกับกรณีการใช้งาน
การทำงานของระบบสำหรับผู้ใช้หลายคน
เมื่อเพิ่มผู้ใช้ลงในอุปกรณ์แล้ว ฟังก์ชันการทำงานบางอย่างจะหายไปเมื่อ มีผู้ใช้รายอื่นอยู่เบื้องหน้า เนื่องจากข้อมูลแอปแยกตามผู้ใช้ สถานะของแอปเหล่านั้นจึงแตกต่างกันไปตามผู้ใช้ ตัวอย่างเช่น อีเมลที่มีปลายทางเป็นบัญชีของผู้ใช้ที่ไม่ได้อยู่ในโฟกัสในขณะนี้จะไม่พร้อมใช้งานจนกว่าผู้ใช้และบัญชีดังกล่าวจะใช้งานอยู่ในอุปกรณ์
หมายเหตุ: หากต้องการเปิดหรือปิดใช้โทรศัพท์และ SMS สำหรับผู้ใช้รอง ให้ไปที่การตั้งค่า > ผู้ใช้ให้เลือก และเปลี่ยนการตั้งค่าอนุญาตการโทรและ SMS เป็นปิด
มีข้อจำกัดบางอย่างเมื่อผู้ใช้รองอยู่เบื้องหลัง ตัวอย่างเช่น ผู้ใช้สำรองพื้นหลังไม่สามารถแสดงอินเทอร์เฟซผู้ใช้หรือทำให้ บริการบลูทูธทำงานอยู่ นอกจากนี้ กระบวนการของระบบจะหยุดผู้ใช้รองในเบื้องหลังหากอุปกรณ์ต้องการหน่วยความจำเพิ่มเติมสำหรับการดำเนินการในผู้ใช้เบื้องหน้า
เมื่อใช้ผู้ใช้หลายคนในอุปกรณ์ Android โปรดคำนึงถึงลักษณะการทำงานต่อไปนี้
- การแจ้งเตือนจะปรากฏในบัญชีทั้งหมดของผู้ใช้รายเดียวพร้อมกัน
- การแจ้งเตือนสำหรับผู้ใช้รายอื่นจะไม่ปรากฏจนกว่าจะใช้งานได้
- ผู้ใช้แต่ละคนจะมีพื้นที่ทํางานสําหรับติดตั้งและวางแอป
- ไม่มีผู้ใช้ที่มีสิทธิ์เข้าถึงข้อมูลแอปของผู้ใช้รายอื่น
- ผู้ใช้ทุกคนจะมีผลกับแอปที่ติดตั้งแล้วสําหรับผู้ใช้ทุกคนได้
- ผู้ใช้ที่ดูแลระบบสามารถนำแอปหรือแม้แต่ทั้งเวิร์กスペースที่ผู้ใช้รองสร้างขึ้นออกได้
- โดยค่าเริ่มต้น ข้อมูลจากเซสชันผู้ใช้ชั่วคราวจะไม่คงอยู่เมื่อออกจากโหมดผู้ใช้ชั่วคราว
หากต้องการให้ข้อมูลจากเซสชันผู้ใช้ชั่วคราวคงอยู่ คุณต้องสร้างไฟล์วางซ้อนทรัพยากรที่กำหนด
config_guestUserAllowEphemeralStateChange
เป็นfalse
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างไฟล์วางซ้อนได้ที่หัวข้อปรับแต่งบิลด์ด้วยการวางซ้อนทรัพยากร
ผู้ใช้หลายคนใน Android Automotive
Android Automotive อาศัยการใช้งานที่มีผู้ใช้หลายคนของ Android เพื่อให้บริการอุปกรณ์ที่แชร์ ประสบการณ์การใช้งาน
ประเภทผู้ใช้ยานยนต์
นอกจากผู้ใช้ประเภทต่างๆ ที่ระบุไว้ข้างต้นแล้ว บิลด์ยานยนต์ยังเหมาะสำหรับผู้ใช้ประเภทต่อไปนี้ด้วย
- ผู้ใช้ระบบแบบไม่มีส่วนหัว ผู้ใช้ระบบโฮสต์บริการของระบบทั้งหมด
ผู้ใช้ระบบต้องเป็นไม่มีส่วนหัวด้วยเพื่อรองรับผู้ใช้หลายคนใน Automotive
มีผู้ใช้แบบไม่มีส่วนหัวเพียงคนเดียว ผู้ใช้ระบบแบบไม่มีส่วนหัว
- ต้องทำงานอยู่เบื้องหลังเสมอ
- ผู้ใช้นำออกหรือเข้าถึงโดยตรงไม่ได้ ยกเว้นในกรณีที่มีการเตรียมอุปกรณ์ ตัวอย่างเช่น ผู้ใช้ไม่สามารถเปลี่ยนเป็นผู้ใช้ประเภทนี้เพื่อทำงานต่างๆ เช่น ดาวน์โหลดแอปหรือเพิ่มบัญชี
- ล้างได้ด้วยการรีเซ็ตเป็นค่าเริ่มต้นเท่านั้น
- ผู้ใช้ทั่วไป เหมือนกับ
ผู้ใช้รองที่อธิบายข้างต้น ยกเว้นผู้ใช้รอง
ผู้ใช้:
- ห้ามทำงานอยู่เบื้องหลัง (หลังจากเปลี่ยนจากไม่ได้)
- สร้างได้โดยตรงผ่านอินเทอร์เฟซผู้ใช้
- มีข้อมูลแอปแยกต่างหาก แต่แชร์การตั้งค่าบางอย่างทั่วทั้งระบบ เช่น Wi-Fi และบลูทูธ
ข้อจำกัด
ข้อยกเว้นต่อไปนี้มีผลกับผู้ใช้ระบบแบบไม่มีส่วนหัวและผู้ใช้ทั่วไป (รอง) ใน ยานยนต์:
- ผู้ใช้ระบบแบบ Headless ไม่รองรับโปรไฟล์งาน
- โดยค่าเริ่มต้น ผู้ใช้ทั่วไป (รอง) จะมีสิทธิ์เข้าถึงการโทรและข้อความอย่างเต็มรูปแบบ
- โดยค่าเริ่มต้น ผู้ใช้ปกติ (รอง) จะไม่ทำงานในเบื้องหลัง
เปิดใช้ผู้ใช้ระบบแบบไม่มีส่วนหัว
ตั้งแต่ Android 10 เป็นต้นไป ฟีเจอร์ผู้ใช้หลายคนสามารถใช้กับกรณีการใช้งานด้านยานยนต์ได้ สำคัญ ซึ่งได้แก่
- ผู้ใช้ระบบเป็นแบบ headless และทำงานในเบื้องหลังเท่านั้น
- ผู้ใช้ที่เป็นมนุษย์จะไม่โต้ตอบกับผู้ใช้ระบบ
หากต้องการเปิดใช้ผู้ใช้ระบบแบบไม่มีส่วนหัว ผู้ผลิตอุปกรณ์ต้องเปิดใช้ผู้ใช้หลายคนตามที่อธิบายไว้ ที่ด้านบน
สิ่งที่จะเกิดขึ้นเมื่อเปิดใช้ผู้ใช้แบบไม่มีส่วนหัว- หากต้องการประกาศว่าอุปกรณ์เป็นยานยนต์ ให้เพิ่มฟีเจอร์
android.hardware.type.automotive
- ตั้งค่า
ro.fw.headless_system_user
เป็นtrue
- ตั้งค่าสำหรับ
config_multiuserMaximumUsers
เป็น2
(หรือสูงกว่า)
สำหรับข้อมูลเพิ่มเติม โปรดดู การสนับสนุนผู้ใช้หลายคน ในยานยนต์
Android Automotive แบบผู้ใช้หลายคนในจอแสดงผลหลายจอ
ฟีเจอร์ใหม่ในเวอร์ชันทดลองใน Android 14 ช่วยให้ผู้ใช้ระดับรองเต็มรูปแบบได้ (ที่ไม่ใช่ผู้ใช้ที่ทำงานอยู่เบื้องหน้าปัจจุบัน) เพื่อเปิดกิจกรรมและรับ สิทธิ์เข้าถึง UI บนจอแสดงผลที่กำหนด ฟีเจอร์นี้ช่วยให้ ผู้ใช้พร้อมกันใน Android Automotive OS เพื่อรองรับประสบการณ์การใช้งานในรถยนต์ที่มอบ ผู้โดยสารที่มี UI เฉพาะในอินสแตนซ์ Android เครื่องเดียว
หากต้องการเปิดใช้ฟีเจอร์นี้สําหรับการใช้งานเพื่อการพัฒนา ผู้ผลิตอุปกรณ์ต้องกําหนดการวางซ้อนทรัพยากรเพื่อแทนที่ค่าต่อไปนี้ใน 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>
คุณสามารถทดสอบประสบการณ์การใช้งานสำหรับผู้โดยสารเท่านั้น (ไม่มีคนขับ) ได้โดยเปิดใช้การกำหนดค่าเพิ่มเติมต่อไปนี้
<!-- 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>
ใน Android 14 คุณสามารถเปิดใช้ประสบการณ์การใช้งานในรถสำหรับผู้โดยสารหลายคนในฐานะผู้ใช้ชั่วคราวได้ หากต้องการให้ผู้ใช้ที่เป็นผู้มาเยือนหลายคนใช้ในการพัฒนาได้
ผู้ผลิตต้องกำหนดการวางซ้อนทรัพยากรที่กำหนดค่าจำนวนผู้เข้าร่วมสูงสุดที่อนุญาต
ผู้ใช้ใน frameworks/base/core/res/res/xml/config_user_types.xml
เช่น
ตัวอย่างด้านล่าง
<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>