使用者在日常生活中可能會與主機 (例如手機) 失去連線,或是摘下 AI 眼鏡,導致眼鏡暫時無法使用。為因應這類裝置可用性變化,應用程式可使用 XR 裝置可用性 API,將裝置可用性信號整合至標準 Android Lifecycle.State 值。這個 API 可協助管理音訊轉送、啟動字詞啟動,以及根據 AI 眼鏡的可用時間,瞭解何時會收到使用者輸入內容。
瞭解生命週期狀態
下表列出裝置供應情形信號如何對應至 Lifecycle.State 值。
生命週期狀態 |
裝置狀態 |
說明 |
|---|---|---|
|
已建立 |
生命週期物件已建立,但尚未觀察。 |
|
無效 |
服務已連線,但使用者未配戴裝置。 |
|
有效 |
使用者佩戴裝置。 |
|
連線中斷 |
裝置已中斷連線,或服務連線中斷。 |
查看及監控裝置供應情形
如要檢查及監控裝置的可用性,您可以使用預測的環境和生命週期狀態,判斷應用程式應如何處理每種情況:
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就會失效。請立即停止使用,並等待新的連線。 - 提升電池和資源使用效率:根據生命週期狀態妥善處理應用程式功能,以保留系統資源並減少電池耗電量。舉例來說,當狀態變更為
CREATED時,您應停止將 UI 內容投影至 AI 眼鏡。