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

อุปกรณ์ 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 เหล่านี้ได้รับบริบทที่ฉายภาพไว้ ระบบจะเข้าถึงฮาร์ดแวร์ของแว่นตาแทนฮาร์ดแวร์ในอุปกรณ์โทรศัพท์โฮสต์ ดังนี้

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