将 ARCore 与 Jetpack XR 配合使用

ARCore for Jetpack XR 允许应用通过使用低级别场景理解原语和运动追踪来处理增强现实 (AR) 的基本概念。在构建 AR 体验且需要使用平面数据或将内容固定到空间中固定位置时,请使用 ARCore for Jetpack XR。

了解 Session 生命周期

ARCore for Jetpack XR 追踪的所有对象都必须通过 Session 访问。类似于 Activity 的生命周期Session 对象也有一个生命周期,必须根据应用对 Session 对象功能的使用情况进行维护。如果您的应用包含一个已启用 XR 的 Activity,请考虑使用 Lifecycle 感知组件来处理 Session 的生命周期。

访问 Session

使用 ARCore for Jetpack XR 时,必须创建一个 Session

使用 Jetpack Compose for XR 时,请使用 LocalSession 访问为您创建的会话。

恢复会话

当您的应用准备好处理来自 ARCore for Jetpack XR 的状态更改时,应恢复会话。在许多情况下,这在您的 Activity 的 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

暂停会话

当您的 Activity 转到后台时,使用 Session.pause() 暂停 Session。暂停会话会暂时停止追踪,直到会话恢复,同时保持感知系统的状态。

销毁会话

要永久处置 Session,请使用 Session.destroy()。这将释放会话正在使用的资源并销毁所有会话状态。

另请参阅