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

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

คำศัพท์

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

ทั่วไป

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

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

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

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

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

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

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 คลาสเพื่อจำกัดการใช้งาน

องค์กรต่างๆ อาจว่าจ้างผู้ใช้และโปรไฟล์เพื่อจัดการตลอดอายุการใช้งาน และขอบเขตของแอปและข้อมูลในอุปกรณ์ โดยใช้ประเภทที่ระบุไว้ข้างต้นใน ร่วมกับ ตัวจัดการนโยบายด้านอุปกรณ์ และ UserManager API สำหรับสร้างโซลูชันที่ไม่เหมือนใครซึ่งปรับให้เหมาะกับกรณีการใช้งาน

การทำงานของระบบสำหรับผู้ใช้หลายคน

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

หมายเหตุ: หากต้องการเปิดหรือปิดใช้โทรศัพท์และ SMS สำหรับผู้ใช้รอง ให้ไปที่การตั้งค่า > ผู้ใช้ให้เลือก และเปลี่ยนการตั้งค่าอนุญาตการโทรและ SMS เป็นปิด

มีข้อจำกัดบางอย่างเมื่อผู้ใช้สำรองทำงานอยู่เบื้องหลัง ตัวอย่างเช่น ผู้ใช้สำรองพื้นหลังไม่สามารถแสดงอินเทอร์เฟซผู้ใช้หรือทำให้ บริการบลูทูธทำงานอยู่ นอกจากนี้ กระบวนการของระบบจะหยุดการทำงานเบื้องหลัง ผู้ใช้รองหากอุปกรณ์ต้องใช้หน่วยความจำเพิ่มเติมสำหรับการดำเนินการใน ผู้ใช้ที่ทำงานอยู่เบื้องหน้า

เมื่อจ้างผู้ใช้หลายคนบนอุปกรณ์ Android โปรดทำดังนี้ กับพฤติกรรมเหล่านี้

  • ซึ่งการแจ้งเตือนจะปรากฏอยู่ในบัญชีทั้งหมดของผู้ใช้รายเดียวพร้อมกัน
  • การแจ้งเตือนสำหรับผู้ใช้รายอื่นจะไม่ปรากฏจนกว่าจะใช้งานได้
  • ผู้ใช้แต่ละคนจะมีพื้นที่ทำงานสำหรับติดตั้งและติดตั้งแอป
  • ไม่มีผู้ใช้ที่มีสิทธิ์เข้าถึงข้อมูลแอปของผู้ใช้รายอื่น
  • ผู้ใช้ทุกคนอาจส่งผลต่อแอปที่ติดตั้งไว้แล้วสําหรับผู้ใช้ทุกคน
  • ผู้ใช้ที่ดูแลระบบสามารถนำแอปออกหรือแม้แต่พื้นที่ทำงานทั้งหมดที่สร้างไว้ได้ โดยผู้ใช้รอง
  • โดยค่าเริ่มต้น ข้อมูลจากเซสชันของผู้ใช้ที่เป็นผู้เยี่ยมชมจะไม่คงอยู่เมื่อออกจากโหมดผู้มาเยือน หากต้องการให้ข้อมูลจากเซสชันผู้ใช้ชั่วคราวยังคงอยู่ คุณต้องสร้างทรัพยากร ไฟล์ซ้อนทับที่ตั้งค่า config_guestUserAllowEphemeralStateChange เป็น false ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างไฟล์ซ้อนทับได้ที่ การปรับแต่งบิลด์ด้วยการวางซ้อนทรัพยากร

ผู้ใช้หลายคนสำหรับ Android Automotive

Android Automotive อาศัยการใช้งานที่มีผู้ใช้หลายคนของ Android เพื่อให้บริการอุปกรณ์ที่แชร์ ประสบการณ์การใช้งาน

ประเภทผู้ใช้ยานยนต์

นอกเหนือจากประเภทผู้ใช้ที่แสดงด้านบนแล้ว บิลด์ยานยนต์ยังโดดเด่นในประเภทเหล่านี้ ของผู้ใช้:

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

ข้อควรระวัง

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

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

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

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

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

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

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