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()
。这将释放会话正在使用的资源并销毁所有会话状态。