วางแผนที่จะรองรับแว่นตาเสียงและแว่นตาแสดงผลประเภทต่างๆ

อุปกรณ์ XR ที่รองรับ
คำแนะนำนี้จะช่วยคุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทนี้
แว่นตาเสียงและ
การแสดงผล

แว่นตาเสียงและแว่นตาแสดงผลประเภทต่างๆ มีความสามารถที่แตกต่างกัน ตัวอย่างเช่น แม้ว่าแว่นตาเสียงและแว่นตาแสดงผลทั้งหมดจะมี ประสบการณ์เสียงผ่านเสียงพูด แต่มีเพียงแว่นตาแสดงผลเท่านั้นที่มีจอแสดงผลซึ่งแอปของคุณสามารถแสดงUI ที่สร้างด้วย Jetpack Compose Glimmer

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

ทําความเข้าใจวงจรของกิจกรรมที่คาดการณ์

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

รูปที่ 1 เหตุการณ์สำคัญในวงจรของกิจกรรมที่คาดการณ์

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

  • onCreate()
    • เรียกใช้เมื่อสร้างกิจกรรมที่คาดการณ์ไว้
    • เริ่มต้น UI ของ Glimmer ของ Jetpack Compose และคอมโพเนนต์อื่นๆ ของแอป ที่นี่
  • onStart()
    • เรียกใช้เมื่อกิจกรรมที่คาดการณ์กำลังจะเริ่มต้นและผู้ใช้รับรู้ถึงแอป
  • onResume()
    • เรียกใช้เมื่อกิจกรรมที่ฉายกลับมาโฟกัสอีกครั้ง ขณะที่กิจกรรมอยู่ในโฟกัส ผู้ใช้จะโต้ตอบกับกิจกรรมได้และสามารถใช้การป้อนข้อมูลจากทัชแพดหรือปุ่มได้
    • เรียกใช้เมื่อใส่แว่นกลับ (สวม) หลังจากที่ก่อนหน้านี้ถอดออกจากศีรษะ (ถอด)
  • onPause()
    • เรียกใช้เมื่อกิจกรรมที่คาดการณ์ไว้สูญเสียโฟกัส แต่ผู้ใช้ยังคงรับรู้ถึงแอปของคุณ ขณะที่กิจกรรมอยู่นอกโฟกัส กิจกรรมนั้นจะโต้ตอบไม่ได้และหยุดรับอินพุต
  • onStop()
    • เรียกใช้เมื่อระบบเชื่อว่าผู้ใช้ไม่ได้รับรู้ถึงแอปของคุณอีกต่อไป
    • เรียกใช้เมื่อถอดแว่นตาออกจากศีรษะ (ถอดออก)
  • onDestroy()
    • เรียกใช้เมื่อกำลังจะทำลายกิจกรรมที่ฉาย เมื่อเรียกใช้ ฟังก์ชันนี้ ระบบจะปล่อยทรัพยากรทั้งหมดที่เชื่อมโยงกับกิจกรรม

ทำความเข้าใจว่าสถานะการแสดงผลส่งผลต่อวงจรกิจกรรมที่คาดการณ์ไว้อย่างไร

ใน Activity มาตรฐาน สถานะวงจรของอุปกรณ์จะเปลี่ยนเมื่อหน้าจอของอุปกรณ์ ปิดลง โดยปกติจะเปลี่ยนเป็น onPause() หรือ onStop() ในทางตรงกันข้าม วงจรชีวิตของกิจกรรมที่ฉายจะไม่เปลี่ยนแปลงเมื่อจอแสดงผลของแว่นตาเปิดหรือปิด ลักษณะการทำงานนี้หมายความว่ากิจกรรมที่ฉายจะทำงานต่อไปในสถานะ "เริ่ม" หรือ "กลับมาทำงานต่อ" แม้ว่าจอแสดงผลจะปิดอยู่ ซึ่งจะช่วยให้ประสบการณ์ด้านเสียงของแอปทำงานต่อไปได้โดยไม่หยุดชะงัก

การเปลี่ยนแปลงสถานะกิจกรรมอื่นๆ ที่เกิดจากเหตุการณ์ต่างๆ ของระบบและผู้ใช้ จะทํางานตามปกติ

ทําความเข้าใจว่าการรับรู้ของผู้ใช้ส่งผลต่อกิจกรรมที่คาดการณ์ไว้อย่างไร

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

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

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

  • สถานะonStart() สำหรับกิจกรรมที่คาดการณ์ไว้หมายความว่ากิจกรรมนั้น ใช้งานอยู่
  • สถานะ onResume() หมายความว่ากิจกรรมโต้ตอบได้และรับ อินพุตจากทัชแพด หรือกำลังรับการส่งอินพุตหลัก

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

ทำความเข้าใจกิจกรรมและบริบทที่คาดการณ์

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

ระบบจะให้บริบทที่คาดการณ์ไว้แก่แอปโดยอัตโนมัติ ทั้งนี้ขึ้นอยู่กับบริบทของกิจกรรมการโทร ดังนี้

  • สำหรับกิจกรรมที่คาดการณ์: หากโค้ดของแอปทำงานจากภายในกิจกรรมที่คาดการณ์ บริบทกิจกรรมของโค้ดนั้นจะเป็นบริบทที่คาดการณ์อยู่แล้ว ในสถานการณ์นี้ การโทรที่ดำเนินการภายในกิจกรรมนั้นจะเข้าถึงฮาร์ดแวร์ของแว่นตาได้อยู่แล้ว

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

ดูข้อมูลเพิ่มเติมได้ที่ใช้บริบทที่คาดการณ์ไว้เพื่อเข้าถึงฮาร์ดแวร์ในแว่นตาเสียงและแว่นตาแสดงผล

ทำความเข้าใจ API ที่รับรู้และทำงานตามอุปกรณ์

API มาตรฐานของ Android บางรายการจะเปลี่ยนฮาร์ดแวร์ของอุปกรณ์ที่เข้าถึงโดยขึ้นอยู่กับContextของกิจกรรมการเรียก เมื่อ API เหล่านี้ได้รับบริบทที่ฉายภาพ API จะเข้าถึงฮาร์ดแวร์ของแว่นตาแทนฮาร์ดแวร์ในอุปกรณ์โทรศัพท์โฮสต์

  • CameraManager: เข้าถึงกล้องในแว่นตา
  • SensorManager: เรียกข้อมูลเซ็นเซอร์ (เช่น ข้อมูลเครื่องวัดการหมุนหรือ ตัวตรวจวัดความเร่ง) จากแว่นตา
  • AudioManager: จัดการสตรีมเสียง ระดับเสียง และการกำหนดเส้นทางใน แว่นตา
  • AudioRecord: บันทึกเสียงโดยใช้ไมโครโฟนของแว่นตา