借助适用于 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]。这会释放会话使用的资源,并销毁所有会话状态。