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

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

คำศัพท์เฉพาะทาง

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

ทั่วไป

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

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

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

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

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

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

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

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

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

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

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 build เพื่อแทนที่ค่าสำหรับ:

  • config_multiuserMaximumUsers ที่มีค่ามากกว่า 1
  • config_enableMultiUserUI ด้วย true

ผู้ผลิตอุปกรณ์อาจตัดสินใจตามจำนวนผู้ใช้สูงสุด หากผู้ผลิตอุปกรณ์หรือผู้อื่นแก้ไขการตั้งค่า พวกเขาต้องแน่ใจว่า SMS และระบบโทรศัพท์ทำงานตามที่กำหนดไว้ใน เอกสารคำจำกัดความความเข้ากันได้ของ Android (CDD)

การจัดการผู้ใช้หลายคน

การจัดการผู้ใช้และโปรไฟล์ (ยกเว้นโปรไฟล์ที่ถูกจำกัด) ดำเนินการโดยแอปพลิเคชันที่เรียกใช้ API โดยทางโปรแกรมในคลาส DevicePolicyManager เพื่อจำกัดการใช้งาน

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

ลักษณะการทำงานของระบบที่มีผู้ใช้หลายราย

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

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

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

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

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

ผู้ใช้หลายคนของ Android Automotive

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

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

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

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

คำเตือน

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

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

เปิดใช้งานผู้ใช้ระบบ headless

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

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

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

เมื่อเปิดใช้งานผู้ใช้ headless:
  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>