ตรวจสอบความพร้อมใช้งานของอุปกรณ์ในขณะรันไทม์สำหรับแว่นตา AI

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

ทำความเข้าใจสถานะวงจร

ตารางต่อไปนี้แสดงวิธีที่สัญญาณความพร้อมใช้งานของอุปกรณ์เชื่อมโยงกับค่า Lifecycle.State

สถานะวงจร

สถานะอุปกรณ์

คำอธิบาย

INITIALIZED

สร้างแล้ว

สร้างออบเจ็กต์วงจร แต่ยังไม่ได้สังเกต

CREATED

ไม่ได้ใช้งาน

บริการเชื่อมต่ออยู่ แต่ผู้ใช้ไม่ได้สวมอุปกรณ์

STARTED

ใช้งานอยู่

ผู้ใช้สวมอุปกรณ์อยู่

DESTROYED

ยกเลิกการเชื่อมต่อแล้ว

อุปกรณ์ไม่ได้เชื่อมต่ออยู่หรือการเชื่อมต่อบริการถูกตัด

ตรวจสอบและติดตามความพร้อมใช้งานของอุปกรณ์

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

    val xrDevice = XrDevice.getCurrentDevice(projectedContext)

    xrDevice.getLifecycle().currentStateFlow
        .takeWhile { it != Lifecycle.State.DESTROYED }
        .collect { state ->
            when (state) {
                Lifecycle.State.STARTED -> { /* Device is ACTIVE (worn) */ }
                Lifecycle.State.CREATED -> { /* Device is INACTIVE (not worn) */ }
                else -> { /* Handle other states */ }
            }
        }
}

ประเด็นสำคัญเกี่ยวกับโค้ด

  • ตรวจสอบการเชื่อมต่อ: ก่อนเข้าถึงวงจรของอุปกรณ์ ให้โทรหา ProjectedContext.isProjectedDeviceConnected เพื่อยืนยันว่าอุปกรณ์ที่ คาดการณ์เชื่อมต่อกับอุปกรณ์โฮสต์แล้ว
  • รับ ProjectedContext: โทรหา ProjectedContext.createProjectedDeviceContext หลังจากยืนยันการเชื่อมต่อแล้ว และตรวจสอบว่าคุณส่งบริบทนี้ไปยังอินสแตนซ์ XrDevice
  • จัดการการล้างบริบท: ระบบจะสร้าง deviceId ใหม่ทุกครั้งที่อุปกรณ์ที่ฉายภาพเชื่อมต่อ เมื่อสถานะถึง DESTROYED แล้ว ProjectedContext ปัจจุบันจะใช้ไม่ได้ หยุดใช้ทันทีและรอการเชื่อมต่อใหม่
  • เพิ่มประสิทธิภาพแบตเตอรี่และทรัพยากร: จัดการฟังก์ชันการทำงานของแอปอย่างเหมาะสมตามสถานะวงจรการใช้งานเพื่อรักษาทรัพยากรของระบบและลดการใช้แบตเตอรี่ เช่น คุณควรหยุดฉายเนื้อหา UI ไปยังแว่นตา AI เมื่อสถานะเปลี่ยนเป็น CREATED