开始使用 Android XR 的 OpenXR

开始使用 Android XR 的 OpenXR

适用的 XR 设备

本指南可帮助您为这些类型的 XR 设备打造体验。

了解 XR 设备类型 →

XR 头戴设备

有线 XR 眼镜

了解 XR 设备类型 →

在开始使用受支持的 OpenXR 扩展程序或受支持的引擎进行构建之前,请查看以下部分中的信息并完成所有任务,以确保您的应用已配置为进行沉浸式 XR 开发。

配置应用的清单文件

与其他 Android 应用项目一样,Android XR 应用必须具有包含特定清单设置的 AndroidManifest.xml 文件。清单文件会向 Android 构建工具、Android 操作系统和 Google Play 描述有关应用的基本信息。如需了解详情,请参阅应用清单概览指南。

注意: 虽然 Android XR 的 Unity 应用基于 OpenXR 构建,但如果您使用适用于 Unity 的 Android XR 软件包之一,则无需手动添加这些清单元素或属性。Unity 软件包会根据您的项目和 build 设置为应用创建清单。

对于 XR 差异化应用,清单文件必须包含以下元素和属性:

PROPERTY_XR_ACTIVITY_START_MODE 属性

android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE" 属性可让系统知道,当 activity 启动时,应以特定模式启动该 activity。

此属性具有以下值:

XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED(仅限 OpenXR)

XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED

使用 OpenXR 构建的应用会在全沉浸空间模式下启动,并且必须使用 XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED 启动模式。非托管 Full Space 向 Android XR 发出信号,表明应用使用 OpenXR。

注意: 如果您使用适用于 Unity 的 Android XR 软件包,您的应用也会在 Full Space 中启动。不过,您无需手动将此内容添加到清单中。Unity 软件包会根据您的项目和 build 设置为应用创建清单。

android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"

android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />

android:name="com.example.myapp.MainActivity" ... >

PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED 属性

android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED" 属性表示应用应使用特定类型的边界启动。如果您的应用旨在让用户在实体空间中四处移动,则需要指定 XR_BOUNDARY_TYPE_LARGE。指定 XR_BOUNDARY_TYPE_NO_RECOMMENDATION 不会提供有关安全边界类型的建议,因此系统会使用已在使用的类型。

android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED"

android:value="XR_BOUNDARY_TYPE_LARGE" />

OpenXR

OpenXR 应用必须声明使用原生 OpenXR 库,才能成功加载其运行时。如果没有此声明,运行时将无法加载。

android:name="com.example.myapp.MainActivity" ... >

适用于 XR 应用的 PackageManager 功能

当您通过 Google Play 商店分发应用时,可以在应用清单中指定所需的硬件或软件功能。借助 uses-feature 元素,Play 商店可以适当过滤向用户显示的应用。

以下功能是 XR 差异化应用特有的。

android.software.xr.api.openxr

以 Android XR 平台为目标平台并使用 OpenXR 或 Unity 构建的应用必须在应用清单中添加此功能,并将 android:required 属性设置为 true。

如果应用使用 Android XR Extensions Package for Unity 版本 1.0.0 或更高版本或 Unity OpenXR: Android XR Package 版本 0.5.0-exp.1 或更高版本,则无需手动将此元素添加到应用清单。这两个软件包会将此元素注入到应用清单中。

设备可以为此功能指定一个版本,该版本表示设备支持的最高 OpenXR 版本。高 16 位表示主版本号,低 16 位表示次版本号。例如,如要指定 OpenXR 版本 1.1,该值应设置为 "0x00010001"。

应用可以使用功能版本来指明应用所需的最低 OpenXR 版本。例如,如果您的应用需要 OpenXR 版本 1.1 支持,请声明以下功能:

android:version="0x00010001"

android:required="true" />

android.hardware.xr.input.controller

此功能指明应用需要来自高精度 6DoF(自由度)运动控制器的输入才能正常运行。如果您的应用支持控制器,但没有控制器便无法正常运行,请将该值设置为 true。如果您的应用支持控制器,但即使没有控制器也能运行,请将其设置为 false。

注意: 6DoF 运动控制器是一对硬件控制器,每只手各一个。每个控制器的空间位置都会通过六自由度(包括线性和旋转运动)进行独立跟踪。这些控制器通常有多个硬件按钮,包括触发器和触感反馈。

android.hardware.xr.input.hand_tracking

此标志表示应用需要高保真手部追踪才能正常运行,包括用户手部关节的位置、方向和速度。如果您的应用支持手部追踪,但没有手部追踪就无法正常运行,请将该值设置为 true。如果您的应用支持手部追踪,但即使没有手部追踪也能正常运行,请将其设置为 false。

注意: 检测捏合、戳、瞄准和抓握等基本手势不需要此标志。

android.hardware.xr.input.eye_tracking

此标志表示应用需要高保真眼动追踪才能正常运行。如果您的应用支持眼动追踪输入,但没有眼动追踪就无法正常运行,请将该值设置为 true。如果您的应用支持眼动追踪输入,但即使没有眼动追踪也能正常运行,请将其设置为 false。

注意: 手部跟踪和眼部跟踪是涉及隐私的输入方法,需要应用请求特殊权限。如需详细了解如何声明权限,请参阅本页面上的了解 XR 的权限。

后续步骤

现在,您已完成应用清单的配置并查看了重要信息,接下来可以探索如何使用 OpenXR 进行构建:

使用受支持的 OpenXR 扩展程序进行构建

使用支持的引擎构建

你可能也喜欢

狂暴之翼官方正版
Microsoft 365安卓

狂暴之翼官方正版

08-10 4382
地痞街区 Streets of Rogue【攻略 评测 史低】
linux将一个文件移动或复制到另一个目录下(超详细)