รองรับผู้ใช้หลายคน

Android รองรับผู้ใช้หลายคนในอุปกรณ์ Android เครื่องเดียวโดยแยกบัญชีผู้ใช้และข้อมูลแอป เช่น ผู้ปกครองอาจอนุญาตให้บุตรหลานใช้แท็บเล็ตของครอบครัว ครอบครัวอาจแชร์รถยนต์ หรือทีมตอบกลับเหตุฉุกเฉินอาจแชร์อุปกรณ์เคลื่อนที่เพื่อรับหน้าที่เฝ้าระวัง

คำศัพท์

Android ใช้คำต่อไปนี้เมื่ออธิบายผู้ใช้และบัญชี Android

ทั่วไป

การจัดการอุปกรณ์ Android ใช้คำศัพท์ทั่วไปต่อไปนี้

  • ผู้ใช้: ผู้ใช้แต่ละรายมีไว้สำหรับบุคคลที่แตกต่างกัน ผู้ใช้แต่ละรายจะมีข้อมูลแอปและการตั้งค่าที่ไม่ซ้ำกัน รวมถึงอินเทอร์เฟซผู้ใช้สำหรับสลับระหว่างผู้ใช้อย่างชัดเจน ผู้ใช้สามารถทำงานในเบื้องหลังได้เมื่อผู้ใช้รายอื่นใช้งานอยู่ โดยระบบจะจัดการปิดผู้ใช้เพื่อประหยัดทรัพยากรตามความเหมาะสม คุณสามารถสร้างผู้ใช้รองได้โดยตรงผ่านอินเทอร์เฟซผู้ใช้หรือจากแอปการดูแลระบบอุปกรณ์
  • บัญชี: บัญชีจะอยู่ในผู้ใช้ แต่ผู้ใช้ไม่ได้เป็นผู้กำหนดบัญชี และผู้ใช้ก็ไม่ได้กำหนดหรือลิงก์กับบัญชีใดบัญชีหนึ่ง ผู้ใช้และโปรไฟล์จะมีบัญชีที่ไม่ซ้ำกันของตนเอง แต่ไม่จำเป็นต้องมีบัญชีเพื่อให้ใช้งานได้ รายชื่อบัญชีจะแตกต่างกันไปตามผู้ใช้ โปรดดูรายละเอียดที่คำจำกัดความคลาสบัญชี
  • โปรไฟล์: โปรไฟล์มีข้อมูลแอปแยกต่างหาก แต่แชร์การตั้งค่าบางอย่างสำหรับทั้งระบบ (เช่น Wi-Fi และบลูทูธ) โปรไฟล์คือชุดย่อยที่เชื่อมโยงกับผู้ใช้ ผู้ใช้มีโปรไฟล์ได้หลายโปรไฟล์ โปรไฟล์สร้างขึ้นผ่านแอปการจัดการอุปกรณ์ โปรไฟล์หนึ่งๆ จะมีการเชื่อมโยงกับผู้ใช้หลักที่ผู้ใช้ที่สร้างโปรไฟล์เป็นผู้กำหนด ซึ่งจะเปลี่ยนแปลงไม่ได้ โปรไฟล์จะหยุดอยู่แค่ช่วงอายุการใช้งานของผู้ใช้ที่สร้างโปรไฟล์
  • แอป: ข้อมูลของแอปจะอยู่ในผู้ใช้ที่เชื่อมโยงแต่ละราย ข้อมูลแอปจะแยกส่วนกับแอปอื่นๆ ภายในผู้ใช้รายเดียวกัน แอปภายในผู้ใช้รายเดียวกันจะโต้ตอบกันได้ผ่าน IPC โปรดดูรายละเอียดที่ Android สำหรับองค์กร

หมวดหมู่ของผู้ใช้

การดูแลระบบอุปกรณ์ Android ใช้ผู้ใช้ในหมวดหมู่ต่อไปนี้

  • ผู้ใช้ระบบ: ผู้ใช้รายแรกที่เพิ่มลงในอุปกรณ์ ผู้ใช้ระบบจะนําออกไม่ได้ ยกเว้นการรีเซ็ตเป็นค่าเริ่มต้น และผู้ใช้ระบบจะทํางานอยู่เสมอแม้ว่าผู้ใช้รายอื่นจะอยู่ในเบื้องหน้าก็ตาม ผู้ใช้รายนี้ยังมีสิทธิ์พิเศษและการตั้งค่าที่ผู้ใช้รายอื่นตั้งค่าไม่ได้
  • ผู้ใช้ระบบแบบไม่มีส่วนหัว: ผู้ใช้รายแรกที่เพิ่มลงในอุปกรณ์หากอุปกรณ์ได้รับการกําหนดค่าให้ทํางานในโหมดผู้ใช้ระบบแบบไม่มีส่วนหัว (โดยการตั้งค่า ro.fw.mu.headless_system_user=true) ผู้ใช้ระบบแบบไม่มีส่วนหัวจะทํางานอยู่เบื้องหลังเสมอ ดังนั้นอุปกรณ์ดังกล่าวจึงต้องมีผู้ใช้ที่ทำงานอยู่เบื้องหน้าเพิ่มเติมเพื่อเปิดใช้การโต้ตอบของผู้ใช้
  • ผู้ใช้รอง: ผู้ใช้ที่เพิ่มลงในอุปกรณ์นอกเหนือจากผู้ใช้ระบบ ผู้ใช้รองจะนำออกได้ (โดยผู้ใช้เองหรือผู้ดูแลระบบ) และจะไม่ส่งผลต่อผู้ใช้รายอื่นในอุปกรณ์ ผู้ใช้เหล่านี้จะทำงานในเบื้องหลังและเชื่อมต่อเครือข่ายได้ต่อไป
  • ผู้ใช้ที่เป็นผู้เข้าร่วม: ผู้ใช้รองชั่วคราว ผู้ใช้ชั่วคราวจะมีตัวเลือกที่ชัดเจนในการลบผู้ใช้ชั่วคราวอย่างรวดเร็วเมื่อหมดประโยชน์แล้ว ผู้ใช้ชั่วคราวจะมีได้เพียงคนเดียวในแต่ละครั้ง
  • ผู้ใช้ที่ดูแลระบบ: ผู้ใช้ที่มีสิทธิ์สร้างและนำผู้ใช้รายอื่นออก รวมถึงควบคุมการตั้งค่าแบบผู้ใช้หลายคนทั่วไปบางอย่าง โดยค่าเริ่มต้น จะมีเพียงผู้ใช้ระบบเท่านั้นที่เป็น "ผู้ดูแลระบบ"

หมวดหมู่ของโปรไฟล์

Android ใช้โปรไฟล์หมวดหมู่ต่อไปนี้

  • โปรไฟล์ที่มีการจัดการ: สร้างโดยแอปเพื่อเก็บข้อมูลงานและแอป โปรไฟล์ดังกล่าวจะจัดการโดยเจ้าของโปรไฟล์ (แอปที่สร้างโปรไฟล์ขององค์กร) เท่านั้น ผู้ใช้หลักและโปรไฟล์ขององค์กรจะแชร์ Launcher, การแจ้งเตือน และงานล่าสุด
  • โปรไฟล์ที่จำกัด: ใช้บัญชีตามผู้ใช้หลัก ซึ่งสามารถควบคุมแอปที่ใช้ได้ในโปรไฟล์ที่จำกัด ใช้ได้กับอุปกรณ์แท็บเล็ตและทีวีเท่านั้น
  • โปรไฟล์โคลน: Android รองรับการสร้างโปรไฟล์โคลนแยกต่างหากสำหรับผู้ใช้เพื่อเปิดแอปเดียว 2 อินสแตนซ์ในอุปกรณ์ AOSP ไม่ได้ให้การสนับสนุนฟีเจอร์นี้ตั้งแต่ต้นจนจบ OEM ต้องเพิ่มการปรับแต่งเพื่อให้ผู้ใช้ Android ได้รับฟีเจอร์ที่สมบูรณ์
  • โปรไฟล์ส่วนตัว: เป็นพื้นที่เสมือนแยกจากส่วนอื่นๆ ของอุปกรณ์ ซึ่งสามารถล็อกแยกจากผู้ใช้หลักได้ โปรไฟล์ส่วนตัวจะมีได้เฉพาะสำหรับผู้ใช้หลักเท่านั้น เมื่อปลดล็อกโปรไฟล์ส่วนตัว แอปจะปรากฏในการตั้งค่า, ShareSheet, เครื่องมือเลือกรูปภาพ และ UI ของเอกสาร แต่แอปจะซ่อนอยู่เมื่อล็อก โปรไฟล์ส่วนตัวจะอยู่ในอุปกรณ์เดียวกันพร้อมกับโปรไฟล์งานและโปรไฟล์ที่โคลนได้

ประเภทผู้ใช้

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 ผู้ใช้ระบบจะต้องเป็นแบบ Headless ด้วย มีผู้ใช้แบบ Headless เพียงรายเดียว ผู้ใช้ระบบแบบ Headless มีลักษณะดังนี้
    • ต้องทำงานอยู่เบื้องหลังเสมอ
    • ผู้ใช้นำออกหรือเข้าถึงโดยตรงไม่ได้ ยกเว้นในกรณีการจัดสรรอุปกรณ์ เช่น ผู้ใช้จะเปลี่ยนเป็นผู้ใช้ประเภทนี้เพื่อทำงานต่างๆ เช่น ดาวน์โหลดแอปหรือเพิ่มบัญชีไม่ได้
    • ล้างได้ด้วยการรีเซ็ตเป็นค่าเริ่มต้นเท่านั้น
  • ผู้ใช้ทั่วไป เหมือนกับผู้ใช้รองที่อธิบายไว้ข้างต้น ยกเว้นผู้ใช้รองจะมีลักษณะดังนี้
    • ไม่ทำงานในเบื้องหลัง (หลังจากมีการเปลี่ยนไปใช้แอปอื่น)
    • สร้างได้โดยตรงผ่านอินเทอร์เฟซผู้ใช้
    • มีข้อมูลแอปแยกต่างหาก แต่แชร์การตั้งค่าบางอย่างทั่วทั้งระบบ เช่น Wi-Fi และบลูทูธ

ข้อจำกัด

ข้อยกเว้นต่อไปนี้มีผลกับผู้ใช้ระบบแบบ Headless และผู้ใช้ทั่วไป (รอง) ในอุตสาหกรรมยานยนต์

  • ผู้ใช้ระบบแบบ Headless ไม่รองรับโปรไฟล์งาน
  • โดยค่าเริ่มต้น ผู้ใช้ทั่วไป (รอง) จะมีสิทธิ์เข้าถึงการโทรและข้อความอย่างเต็มรูปแบบ
  • โดยค่าเริ่มต้น ผู้ใช้ทั่วไป (รอง) จะไม่ทำงานในเบื้องหลัง

เปิดใช้ผู้ใช้ระบบแบบไม่มีส่วนหัว

ตั้งแต่ Android 10 เป็นต้นไป ฟีเจอร์ผู้ใช้หลายคนจะใช้ได้กับกรณีการใช้งานยานยนต์ ความแตกต่างที่สำคัญมีดังนี้

  • ผู้ใช้ระบบเป็นแบบ headless และทำงานในเบื้องหลังเท่านั้น
  • ผู้ใช้ที่เป็นมนุษย์จะไม่โต้ตอบกับผู้ใช้ระบบ

หากต้องการเปิดใช้ผู้ใช้ระบบแบบ Headless ผู้ผลิตอุปกรณ์ต้องเปิดใช้ผู้ใช้หลายคนตามที่อธิบายไว้ข้างต้น

สิ่งที่จะเกิดขึ้นเมื่อเปิดใช้ผู้ใช้แบบไม่มีส่วนหัวมีดังนี้
  1. หากต้องการประกาศว่าอุปกรณ์เป็นยานยนต์ ให้เพิ่มฟีเจอร์ android.hardware.type.automotive
  2. ตั้งค่า ro.fw.headless_system_user เป็น true
  3. ตั้งค่า config_multiuserMaximumUsers เป็น 2 (หรือสูงกว่า)

ดูข้อมูลเพิ่มเติมได้ที่การรองรับผู้ใช้หลายคนใน Automotive

Android Automotive แบบผู้ใช้หลายคนในจอแสดงผลหลายจอ

Android 15 อนุญาตให้ผู้ใช้รองแบบเต็ม (ที่ไม่ใช่ผู้ใช้ที่ใช้งานอยู่ในปัจจุบัน) เปิดใช้งานกิจกรรมและเข้าถึง UI บนจอแสดงผลที่กำหนดให้ ฟีเจอร์นี้ช่วยให้ผู้ใช้หลายคนใน Android Automotive OS ใช้งานร่วมกันได้เพื่อรองรับประสบการณ์การใช้งานในรถที่มอบประสบการณ์ UI โดยเฉพาะแก่ผู้โดยสารหลายคนในอินสแตนซ์ Android เดียว

หากต้องการเปิดใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ต้องกำหนดการวางซ้อนทรัพยากรเพื่อแทนที่ค่าต่อไปนี้ใน frameworks/base/core/res/res/values/config.xml

<!-- Whether the device allows full users to start in background visible on displays.
Should be false for most devices, except automotive vehicle with passenger displays.
Note: this flag does NOT control the Communal Profile, which is not a full user. -->

<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 15 คุณสามารถเปิดใช้ประสบการณ์การใช้งานในรถสำหรับผู้โดยสารหลายคนในฐานะผู้ใช้ชั่วคราวได้ด้วย หากต้องการเปิดใช้ผู้ใช้ชั่วคราวหลายคนสําหรับการใช้งานเพื่อการพัฒนา ผู้ผลิตอุปกรณ์ต้องกําหนดการวางซ้อนทรัพยากรที่กําหนดค่าจํานวนผู้ใช้ชั่วคราวสูงสุดที่อนุญาตใน 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>