使用 Jetpack XR 的 ARCore

ARCore for Jetpack XR 可讓應用程式使用低階場景理解原語元和動作追蹤,運用擴增實境 (AR) 的基本概念。在建構 AR 體驗時,如果需要使用平面資料或將內容錨定至空間中的固定位置,請使用 Jetpack XR 版 ARCore。

瞭解 Session 生命週期

所有由 ARCore for Jetpack XR 追蹤的物件,都必須透過 Session 存取。與活動生命週期類似,Session 物件也有生命週期,必須根據應用程式對 Session 物件功能的使用方式進行維護。如果應用程式包含單一支援 XR 的活動,建議您使用生命週期感知元件處理 Session 的生命週期。

存取 Session

使用 ARCore for Jetpack XR 時,必須建立 Session

使用 Jetpack Compose 進行 XR 時,請使用 LocalSession 存取為您建立的工作階段。

繼續執行工作階段

當應用程式準備好處理 ARCore for Jetpack XR 的狀態變更時,應恢復工作階段。在許多情況下,這項作業會在活動的 onResume() 回呼中執行,但應用程式可能會延遲處理,直到使用者互動為止。

以下程式碼片段為繼續工作階段的範例。

when (val result = session.resume()) {
    is SessionResumeSuccess -> {
        // Session has been created successfully.
        // Attach any successful handlers here.
    }

    is SessionResumePermissionsNotGranted -> {
        // Request permissions in `result.permissions`.
    }
}

如要瞭解 Session 可能無法繼續執行的原因,請參閱 SessionResumeResult

暫停工作階段

當活動進入背景時,請使用 [Session.pause()][Session.pause] 暫停 Session。暫停工作階段會暫時停止追蹤,直到工作階段恢復為止,以維持感知系統的狀態。

摧毀工作階段

如要永久處置 Session,請使用 [Session.destroy()][Session.destroy]。這麼做可釋放工作階段使用的資源,並銷毀所有工作階段狀態。

另請參閱