使用适用于 Jetpack XR 的 ARCore

借助适用于 Jetpack XR 的 ARCore,应用可以使用低级场景理解基元和动作跟踪来处理增强现实 (AR) 的基本概念。在构建 AR 体验时,如果您需要使用平面数据或将内容锚定到空间中的固定位置,请使用适用于 Jetpack XR 的 ARCore。

了解 Session 生命周期

必须通过 Session 访问 ARCore for Jetpack XR 跟踪的所有对象。与 activity 的生命周期类似,Session 对象也具有生命周期,必须根据应用对 Session 对象功能的使用情况进行维护。如果您的应用包含一个支持 XR 的 activity,请考虑使用生命周期感知型组件处理 Session 的生命周期。

访问 Session

使用适用于 Jetpack XR 的 ARCore 时,必须创建 Session

使用适用于 XR 的 Jetpack Compose 时,请使用 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.pause] 暂停 Session。暂停会话会暂时停止跟踪,直到会话恢复为止,同时会保持感知系统的状态。

销毁会话

如需永久处置 Session,请使用 [Session.destroy()][Session.destroy]。这会释放会话使用的资源,并销毁所有会话状态。

另请参阅