ARCore for Jetpack XR 为您的应用带来了强大的感知功能,可通过各种 API 理解现实世界。其中一些 API 可帮助您提升 XR 头戴设备和有线 XR 眼镜等设备的沉浸式体验,一些可帮助您提升 AI 眼镜等设备的增强体验,还有一些可帮助您提升所有类型 Android XR 设备的应用体验。
例如,您可以使用 ARCore for Jetpack XR 检索平面数据、将内容锚定到空间中的固定位置,或使用地理空间姿态将内容锚定到现实世界中的位置。
添加库依赖项
在开始在 XR 应用中使用感知功能之前,请添加必要的依赖项,具体取决于您要通过 AR 增强的应用体验类型。
访问会话
ARCore for Jetpack XR 中的感知功能依赖于 Session,后者使用 Jetpack XR 运行时。
应用应如何访问会话取决于您使用感知功能增强的应用体验类型:
- 如果您的应用使用 Jetpack Compose for XR 通过空间界面增强沉浸式体验,请从 Jetpack Compose for XR 访问会话。
- 对于所有其他情况,您可以使用 Jetpack XR 运行时创建会话,本页的以下部分对此进行了介绍。
使用 Jetpack XR 运行时创建会话
如需创建会话,请将 Context 传递给 create() 方法。此 Context 可以是沉浸式 XR 设备或移动设备上的 Activity,也可以是智能眼镜上的投影上下文。
创建 ARCore 会话可能是一项开销很大的任务,应在后台处理,如以下示例所示:
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
create() 函数可以使用可选的 LifecycleOwner 参数,该参数允许由其他 LifecycleOwner 管理会话的生命周期。LifecycleOwner 必须在所提供上下文的范围内开始和结束其生命周期,否则 Session 可能会容易发生泄漏。
配置会话
某些功能可能默认处于停用状态,必须进行配置才能正常运行。如需配置会话,请使用 configure() 并指定 Session 所需的配置选项。如需详细了解不同 AR 功能所需的配置,请参阅每个 AR 功能的对应页面。
后续步骤
应用具有会话后,您可以探索如何使用会话来提升不同 XR 设备上的应用体验:
- 使用 ARCore for Jetpack XR 检测平面
- 使用 ARCore for Jetpack XR 创建锚点
- 使用 ARCore for Jetpack XR 处理手部数据
- 使用 ARCore for Jetpack XR 在应用中整合面部追踪功能
- 使用 ARCore for Jetpack XR 在应用中检索深度信息
- 使用 ARCore for Jetpack XR 跟踪设备的姿态