在執行階段檢查 AI 眼鏡的裝置可用性

使用者在日常生活中可能會與主機 (例如手機) 失去連線,或是摘下 AI 眼鏡,導致眼鏡暫時無法使用。為因應這類裝置可用性變化,應用程式可使用 XR 裝置可用性 API,將裝置可用性信號整合至標準 Android Lifecycle.State 值。這個 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 就會失效。請立即停止使用,並等待新的連線。
  • 提升電池和資源使用效率:根據生命週期狀態妥善處理應用程式功能,以保留系統資源並減少電池耗電量。舉例來說,當狀態變更為 CREATED 時,您應停止將 UI 內容投影至 AI 眼鏡。