Android XR — это расширение платформы и экосистемы Android. Android XR SDK предназначен для того, чтобы вы могли создавать приложения XR, используя знакомые платформы и инструменты Android или используя открытые стандарты, такие как OpenXR и WebXR. Все совместимые мобильные приложения или приложения с большим экраном будут доступны для установки на гарнитуры XR из Play Store. Ознакомьтесь с рекомендациями по совместимости, чтобы узнать, совместимо ли ваше приложение.
В этом руководстве описаны следующие области:
- Выбор инструментов и технологий разработки
- Разработка приложений для Android XR
- Настройка файла манифеста вашего приложения
- Рекомендации по совместимости манифеста приложения
- Общие сведения о разрешениях для Android XR
- Обеспечение качества приложения Android XR
- Упаковка и распространение вашего приложения для Android XR
Выберите свои инструменты и технологии разработки
При создании приложения для Android XR вы можете выбрать одну из следующих платформ и технологий разработки:
Джетпак XR SDK
Jetpack XR SDK содержит библиотеки Android XR Jetpack , созданные с учетом уникальных возможностей устройств XR. Начните с этого SDK, если хотите выполнить одно из следующих действий:
- Оптимизируйте или улучшите существующее приложение для мобильных устройств или планшетов Android.
- Создайте новое приложение Android XR с помощью Android Studio и Jetpack.
Если вы уже умеете разрабатывать приложения с помощью Android Jetpack, вам подойдет Jetpack XR SDK. Он предназначен для полной интеграции с этими платформами и библиотеками и позволяет использовать существующие знания для создания захватывающих XR-приложений.
Узнайте больше о разработке с помощью Jetpack XR SDK .
Единство
Unity Engine — это механизм разработки 3D-изображений в реальном времени, который позволяет художникам, дизайнерам и разработчикам сотрудничать для создания захватывающих и интерактивных впечатлений. Поддержка Android XR в Unity дает вам высокий уровень контроля над разрабатываемыми вами 3D-проектами, а также преимущества устоявшейся поддержки Unity OpenXR и экосистемы разработчиков.
Если у вас уже есть опыт XR, созданный с помощью Unity, или вы знакомы с разработкой Unity, начните с этого варианта.
Узнайте больше о разработке с помощью Unity для Android XR .
OpenXR
OpenXR — это бесплатный открытый стандарт, который можно использовать для создания высокопроизводительных многоплатформенных приложений XR. Android XR поддерживает OpenXR 1.0 и 1.1, и мы расширяем спецификацию новыми расширениями для Android XR. Поскольку Android XR построен на открытых стандартах, инструменты разработки, поддерживающие OpenXR и Android, должны быть совместимы с Android XR.
Узнайте больше о поддержке OpenXR для Android XR .
ВебXR
WebXR позволяет создавать захватывающие возможности для Интернета. Он обеспечивает доступ к устройствам VR и AR в совместимых веб-браузерах, таких как Chrome на Android XR.
Начните с этого варианта, если вы хотите создать интерфейс XR для Интернета или добавить возможности XR в веб-приложение. Существующие возможности WebXR также будут работать на Android XR.
Узнайте больше о создании веб-приложений с помощью WebXR .
Дизайн для XR
XR расширяет возможности проектирования за пределы традиционных плоских экранов; вы можете создавать захватывающие впечатления, сочетающие физическую и виртуальную реальность. Независимо от того, создаете ли вы совершенно новый интерфейс или добавляете элементы погружения в существующее приложение, руководство по дизайну для Android XR поможет вам начать работу.
Настройте файл манифеста вашего приложения
Как и в других проектах приложений Android, ваше приложение Android XR должно иметь файл AndroidManifest.xml с определенными настройками манифеста. Файл манифеста содержит важную информацию о вашем приложении для инструментов сборки Android, операционной системы Android и Google Play. Дополнительные сведения см. в обзорном руководстве по манифесту приложения .
Для приложений, дифференцированных XR , ваш файл манифеста должен содержать следующие элементы и атрибуты:
Свойство PROPERTY_ACTIVITY_XR_START_MODE
Свойство android:name="android.window.PROPERTY_ACTIVITY_XR_START_MODE"
сообщает системе, что действие должно запускаться в определенном режиме при запуске действия.
Для этого свойства возможны три значения:
-
XR_ACTIVITY_START_MODE_HOME_SPACE
(только Jetpack XR SDK) -
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED
(только Jetpack XR SDK) -
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
(только OpenXR)
XR_ACTIVITY_START_MODE_HOME_SPACE
(Только приложения, созданные с помощью Jetpack XR SDK)
Используйте этот режим запуска для запуска приложения в Home Space. В Home Space несколько приложений могут работать одновременно, поэтому пользователи могут выполнять несколько задач одновременно. Любое мобильное Android-приложение или приложение с большим экраном может работать в Home Space, а также приложения XR, созданные с использованием Jetpack XR SDK.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_HOME_SPACE" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED
(Только приложения, созданные с помощью Jetpack XR SDK)
Используйте этот режим запуска, чтобы запустить приложение в полноэкранном режиме. В режиме «Полное пространство» одновременно запускается только одно приложение без границ пространства, а все остальные приложения скрыты.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
(Только приложения, созданные с использованием OpenXR)
Приложения, созданные с помощью OpenXR, запускаются в полноэкранном режиме и должны использовать режим запуска XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
. Неуправляемое полное пространство сообщает Android XR, что приложение использует OpenXR.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Функции PackageManager для приложений XR
Когда вы распространяете приложения через Google Play Store , вы можете указать необходимые аппаратные или программные функции в манифесте приложения. Элемент uses-feature
позволяет Play Store соответствующим образом фильтровать приложения, показываемые пользователям.
Следующие функции относятся только к приложениям XR.
android.software.xr.immersive
Если ваше приложение предназначено для платформы Android XR и работает только на платформах, поддерживающих XR, установите значение true. Если ваше приложение имеет некоторые функции, оптимизированные для XR, но также может работать на устройствах, отличных от XR, установите значение false.
Приложения, созданные с использованием OpenXR или Unity, должны иметь для этого значения значение true.
<uses-feature android:name="android.software.xr.immersive" android:required="true" />
android.hardware.xr.input.controller
Эта функция указывает на то, что для правильной работы приложению требуется ввод данных от высокоточного контроллера движения с 6 степенями свободы. Если ваше приложение поддерживает контроллеры и не может работать без них, установите значение true. Если ваше приложение поддерживает контроллеры, но может работать без них, установите для него значение false.
<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />
android.hardware.xr.input.hand_tracking
Этот флаг указывает на то, что для правильной работы приложения требуется высокоточное отслеживание рук, включая положение, ориентацию и скорость суставов руки пользователя. Если ваше приложение поддерживает отслеживание рук и не может работать без него, установите значение true. Если ваше приложение поддерживает отслеживание рук, но может работать без него, установите для него значение false.
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />
android.hardware.xr.input.eye_tracking
Этот флаг указывает на то, что приложению требуется высокоточное отслеживание глаз для правильной работы ввода. Если ваше приложение поддерживает отслеживание взгляда при вводе и не может работать без него, установите значение true. Если ваше приложение поддерживает отслеживание взгляда при вводе, но может работать без него, установите для него значение false.
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />
Рекомендации по совместимости манифеста приложения для мобильных приложений и приложений с большим экраном
Как описано в разделе «Функции PackageManager для приложений XR» , приложения заявляют, что используют функцию, объявляя ее в элементе <uses-feature>
в манифесте приложения. Некоторые функции, такие как телефония или GPS, могут быть совместимы не со всеми устройствами.
Неподдерживаемые функции
Магазин Google Play фильтрует приложения, доступные для установки на устройстве, используя следующие объявления функций Android.
Аппаратное обеспечение камеры
android.hardware.camera.autofocus
android.hardware.camera.capability.manual_post_processing
android.hardware.camera.capability.manual_sensor
android.hardware.camera.capability.raw
android.hardware.camera.concurrent
android.hardware.camera.external
android.hardware.camera.level.full
Возможности подключения
android.hardware.ipsec_tunnel_migration
Конфигурация устройства
Конфигурация форм-фактора
android.hardware.type.automotive
android.hardware.type.embedded
android.hardware.type.television
android.software.leanback_only
Вход
android.software.input_methods
Расположение
Ближняя бесконтактная связь
Конфигурация безопасности и оборудование
android.hardware.se.omapi.uicc
android.hardware.biometrics.face
android.hardware.identity_credential
android.hardware.identity_credential_direct_access
android.hardware.keystore.limited_use_key
android.hardware.keystore.single_use_key
android.hardware.strongbox_keystore
Датчики
android.hardware.sensor.accelerometer_limited_axes
android.hardware.sensor.accelerometer_limited_axes_uncalibrated
android.hardware.sensor.ambient_temperature
android.hardware.sensor.barometer
android.hardware.sensor.gyroscope_limited_axes
android.hardware.sensor.gyroscope_limited_axes_uncalibrated
android.hardware.sensor.heading
android.hardware.sensor.heartrate
android.hardware.sensor.heartrate.ecg
android.hardware.sensor.hinge_angle
android.hardware.sensor.relative_humidity
android.hardware.sensor.stepcounter
android.hardware.sensor.stepdetector
Конфигурация программного обеспечения
android.software.connectionservice
android.software.expanded_picture_in_picture
android.software.live_wallpaper
android.software.picture_in_picture
android.software.wallet_location_based_suggestions
Телефония
android.hardware.telephony.calling
android.hardware.telephony.cdma
android.hardware.telephony.data
android.hardware.telephony.euicc
android.hardware.telephony.euicc.mep
android.hardware.telephony.gsm
android.hardware.telephony.ims
android.hardware.telephony.mbms
android.hardware.telephony.messaging
android.hardware.telephony.radio.access
android.hardware.telephony.subscription
Виртуальная реальность (устаревшая версия)
android.hardware.vr.headtracking
android.hardware.vr.high_performance
Виджеты
Общие сведения о разрешениях для XR
Как и в случае с приложениями на мобильных устройствах и других форм-факторах, некоторые возможности, предлагаемые приложениями XR, могут потребовать от вашего приложения объявления разрешений в файле AndroidManifest вашего приложения. В случае опасных разрешений вашему приложению может потребоваться запросить разрешения во время выполнения . Прочтите «Разрешения на Android» и рекомендации по разрешениям для получения более подробной информации.
Разрешения для функций XR
Следующие разрешения могут использоваться приложениями XR. Все разрешения в этом разделе считаются опасными разрешениями, поэтому вы должны объявить их в манифесте приложения и запросить их во время выполнения.
-
android.permission.EYE_TRACKING
Варианты использования, требующие этого разрешения
Представление позы и ориентации глаз пользователя для использования с аватарами.
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Функции Unity, для которых требуется это разрешение
-
android.permission.EYE_TRACKING_COARSE
Варианты использования, требующие этого разрешения
Представление позы, статуса и ориентации глаз пользователя, например, для использования с аватарами. Используйте это разрешение, когда необходимы данные отслеживания глаз низкой точности.
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Функции Unity, для которых требуется это разрешение
-
android.permission.EYE_TRACKING_FINE
Варианты использования, требующие этого разрешения
Взгляд для выбора, ввода и взаимодействия
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.FACE_TRACKING
Варианты использования, требующие этого разрешения
Отслеживание и рендеринг выражений лица
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.HAND_TRACKING
Варианты использования, требующие этого разрешения
Отслеживание положения суставов рук, угловых и линейных скоростей; Использование сетчатого представления рук пользователя
Функции Jetpack XR SDK, для которых требуется это разрешение
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.SCENE_UNDERSTANDING
Варианты использования, требующие этого разрешения
Оценка освещенности; проецирование сквозных отверстий на сетчатые поверхности; выполнение raycasts для отслеживаемых объектов в окружающей среде; слежение за самолетом; отслеживание объектов; работа с глубиной для окклюзии и проверки попадания; постоянные якоря.
Функции Jetpack XR SDK, для которых требуется это разрешение
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.SCENE_UNDERSTANDING_COARSE
Варианты использования, требующие этого разрешения
Оценка освещенности; проецирование сквозных отверстий на сетчатые поверхности; выполнение raycasts для отслеживаемых объектов в окружающей среде; слежение за самолетом; отслеживание объектов; постоянные якоря.
Функции Jetpack XR SDK, для которых требуется это разрешение
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.SCENE_UNDERSTANDING_FINE
Варианты использования, требующие этого разрешения
Текстура глубины
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
Обеспечьте качество приложения Android XR
Чтобы ваше приложение было удобным для пользователей, ознакомьтесь с нашими рекомендациями по обеспечению качества приложений для Android XR .
Упаковывайте и распространяйте свое приложение для Android XR.
Android XR предлагает широкий выбор приложений и возможностей для гарнитур XR через Google Play. В руководстве по упаковке и распространению приложений для Android XR вы найдете информацию о начале работы с Play Store и Play Console, публикации треков, подготовке пакетов приложений для Android и ограничениях на размер приложений.
,Android XR — это расширение платформы и экосистемы Android. Android XR SDK предназначен для того, чтобы вы могли создавать приложения XR, используя знакомые платформы и инструменты Android или используя открытые стандарты, такие как OpenXR и WebXR. Все совместимые мобильные приложения или приложения с большим экраном будут доступны для установки на гарнитуры XR из Play Store. Ознакомьтесь с рекомендациями по совместимости, чтобы узнать, совместимо ли ваше приложение.
В этом руководстве описаны следующие области:
- Выбор инструментов и технологий разработки
- Разработка приложений для Android XR
- Настройка файла манифеста вашего приложения
- Рекомендации по совместимости манифеста приложения
- Общие сведения о разрешениях для Android XR
- Обеспечение качества приложения Android XR
- Упаковка и распространение вашего приложения для Android XR
Выберите свои инструменты и технологии разработки
При создании приложения для Android XR вы можете выбрать одну из следующих платформ и технологий разработки:
Джетпак XR SDK
Jetpack XR SDK содержит библиотеки Android XR Jetpack , созданные с учетом уникальных возможностей устройств XR. Начните с этого SDK, если хотите выполнить одно из следующих действий:
- Оптимизируйте или улучшите существующее приложение для мобильных устройств или планшетов Android.
- Создайте новое приложение Android XR с помощью Android Studio и Jetpack.
Если вы уже умеете разрабатывать приложения с помощью Android Jetpack, вам подойдет Jetpack XR SDK. Он предназначен для полной интеграции с этими платформами и библиотеками и позволяет использовать имеющиеся знания для создания захватывающих XR-приложений.
Узнайте больше о разработке с помощью Jetpack XR SDK .
Единство
Unity Engine — это механизм разработки 3D-изображений в реальном времени, который позволяет художникам, дизайнерам и разработчикам сотрудничать для создания захватывающих и интерактивных впечатлений. Поддержка Android XR в Unity дает вам высокий уровень контроля над разрабатываемыми вами 3D-проектами, а также преимущества устоявшейся поддержки Unity OpenXR и экосистемы разработчиков.
Если у вас уже есть опыт XR, созданный с помощью Unity, или вы знакомы с разработкой Unity, начните с этого варианта.
Узнайте больше о разработке с помощью Unity для Android XR .
OpenXR
OpenXR — это бесплатный открытый стандарт, который можно использовать для создания высокопроизводительных многоплатформенных приложений XR. Android XR поддерживает OpenXR 1.0 и 1.1, и мы расширяем спецификацию новыми расширениями для Android XR. Поскольку Android XR построен на открытых стандартах, инструменты разработки, поддерживающие OpenXR и Android, должны быть совместимы с Android XR.
Узнайте больше о поддержке OpenXR для Android XR .
ВебXR
WebXR позволяет создавать захватывающие возможности для Интернета. Он обеспечивает доступ к устройствам VR и AR в совместимых веб-браузерах, таких как Chrome на Android XR.
Начните с этого варианта, если вы хотите создать интерфейс XR для Интернета или добавить возможности XR в веб-приложение. Существующие возможности WebXR также будут работать на Android XR.
Узнайте больше о создании веб-приложений с помощью WebXR .
Дизайн для XR
XR расширяет возможности проектирования за пределы традиционных плоских экранов; вы можете создавать захватывающие впечатления, сочетающие физическую и виртуальную реальность. Независимо от того, создаете ли вы совершенно новый интерфейс или добавляете элементы погружения в существующее приложение, руководство по дизайну для Android XR поможет вам начать работу.
Настройте файл манифеста вашего приложения
Как и в других проектах приложений Android, ваше приложение Android XR должно иметь файл AndroidManifest.xml с определенными настройками манифеста. Файл манифеста содержит важную информацию о вашем приложении для инструментов сборки Android, операционной системы Android и Google Play. Дополнительные сведения см. в обзорном руководстве по манифесту приложения .
Для приложений, дифференцированных XR , ваш файл манифеста должен содержать следующие элементы и атрибуты:
Свойство PROPERTY_ACTIVITY_XR_START_MODE
Свойство android:name="android.window.PROPERTY_ACTIVITY_XR_START_MODE"
сообщает системе, что действие должно запускаться в определенном режиме при запуске действия.
Для этого свойства возможны три значения:
-
XR_ACTIVITY_START_MODE_HOME_SPACE
(только Jetpack XR SDK) -
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED
(только Jetpack XR SDK) -
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
(только OpenXR)
XR_ACTIVITY_START_MODE_HOME_SPACE
(Только приложения, созданные с помощью Jetpack XR SDK)
Используйте этот режим запуска для запуска приложения в Home Space. В Home Space несколько приложений могут работать одновременно, поэтому пользователи могут выполнять несколько задач одновременно. Любое мобильное Android-приложение или приложение с большим экраном может работать в Home Space, а также приложения XR, созданные с использованием Jetpack XR SDK.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_HOME_SPACE" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED
(Только приложения, созданные с помощью Jetpack XR SDK)
Используйте этот режим запуска, чтобы запустить приложение в полноэкранном режиме. В режиме «Полное пространство» одновременно запускается только одно приложение без границ пространства, а все остальные приложения скрыты.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
(Только приложения, созданные с использованием OpenXR)
Приложения, созданные с помощью OpenXR, запускаются в полноэкранном режиме и должны использовать режим запуска XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
. Неуправляемое полное пространство сообщает Android XR, что приложение использует OpenXR.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Функции PackageManager для приложений XR
Когда вы распространяете приложения через Google Play Store , вы можете указать необходимые аппаратные или программные функции в манифесте приложения. Элемент uses-feature
позволяет Play Store соответствующим образом фильтровать приложения, показываемые пользователям.
Следующие функции относятся только к приложениям XR.
android.software.xr.immersive
Если ваше приложение предназначено для платформы Android XR и работает только на платформах, поддерживающих XR, установите значение true. Если ваше приложение имеет некоторые функции, оптимизированные для XR, но также может работать на устройствах, отличных от XR, установите значение false.
Приложения, созданные с использованием OpenXR или Unity, должны иметь для этого значения значение true.
<uses-feature android:name="android.software.xr.immersive" android:required="true" />
android.hardware.xr.input.controller
Эта функция указывает на то, что для правильной работы приложению требуется ввод данных от высокоточного контроллера движения с 6 степенями свободы. Если ваше приложение поддерживает контроллеры и не может работать без них, установите значение true. Если ваше приложение поддерживает контроллеры, но может работать без них, установите для него значение false.
<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />
android.hardware.xr.input.hand_tracking
Этот флаг указывает на то, что для правильной работы приложения требуется высокоточное отслеживание рук, включая положение, ориентацию и скорость суставов руки пользователя. Если ваше приложение поддерживает отслеживание рук и не может работать без него, установите значение true. Если ваше приложение поддерживает отслеживание рук, но может работать без него, установите для него значение false.
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />
android.hardware.xr.input.eye_tracking
Этот флаг указывает на то, что приложению требуется высокоточное отслеживание глаз для правильной работы ввода. Если ваше приложение поддерживает отслеживание взгляда при вводе и не может работать без него, установите значение true. Если ваше приложение поддерживает отслеживание взгляда при вводе, но может работать без него, установите для него значение false.
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />
Рекомендации по совместимости манифеста приложения для мобильных приложений и приложений с большим экраном
Как описано в разделе «Функции PackageManager для приложений XR» , приложения заявляют, что используют функцию, объявляя ее в элементе <uses-feature>
в манифесте приложения. Некоторые функции, такие как телефония или GPS, могут быть совместимы не со всеми устройствами.
Неподдерживаемые функции
Магазин Google Play фильтрует приложения, доступные для установки на устройстве, используя следующие объявления функций Android.
Аппаратное обеспечение камеры
android.hardware.camera.autofocus
android.hardware.camera.capability.manual_post_processing
android.hardware.camera.capability.manual_sensor
android.hardware.camera.capability.raw
android.hardware.camera.concurrent
android.hardware.camera.external
android.hardware.camera.level.full
Возможности подключения
android.hardware.ipsec_tunnel_migration
Конфигурация устройства
Конфигурация форм-фактора
android.hardware.type.automotive
android.hardware.type.embedded
android.hardware.type.television
android.software.leanback_only
Вход
android.software.input_methods
Расположение
Ближняя бесконтактная связь
Конфигурация безопасности и оборудование
android.hardware.se.omapi.uicc
android.hardware.biometrics.face
android.hardware.identity_credential
android.hardware.identity_credential_direct_access
android.hardware.keystore.limited_use_key
android.hardware.keystore.single_use_key
android.hardware.strongbox_keystore
Датчики
android.hardware.sensor.accelerometer_limited_axes
android.hardware.sensor.accelerometer_limited_axes_uncalibrated
android.hardware.sensor.ambient_temperature
android.hardware.sensor.barometer
android.hardware.sensor.gyroscope_limited_axes
android.hardware.sensor.gyroscope_limited_axes_uncalibrated
android.hardware.sensor.heading
android.hardware.sensor.heartrate
android.hardware.sensor.heartrate.ecg
android.hardware.sensor.hinge_angle
android.hardware.sensor.relative_humidity
android.hardware.sensor.stepcounter
android.hardware.sensor.stepdetector
Конфигурация программного обеспечения
android.software.connectionservice
android.software.expanded_picture_in_picture
android.software.live_wallpaper
android.software.picture_in_picture
android.software.wallet_location_based_suggestions
Телефония
android.hardware.telephony.calling
android.hardware.telephony.cdma
android.hardware.telephony.data
android.hardware.telephony.euicc
android.hardware.telephony.euicc.mep
android.hardware.telephony.gsm
android.hardware.telephony.ims
android.hardware.telephony.mbms
android.hardware.telephony.messaging
android.hardware.telephony.radio.access
android.hardware.telephony.subscription
Виртуальная реальность (устаревшая версия)
android.hardware.vr.headtracking
android.hardware.vr.high_performance
Виджеты
Общие сведения о разрешениях для XR
Как и в случае с приложениями на мобильных устройствах и в других форм-факторах, некоторые возможности, предлагаемые приложениями XR, могут потребовать от вашего приложения объявления разрешений в файле AndroidManifest вашего приложения. В случае опасных разрешений вашему приложению может потребоваться запросить разрешения во время выполнения . Прочтите «Разрешения на Android» и рекомендации по разрешениям для получения более подробной информации.
Разрешения для функций XR
Следующие разрешения могут использоваться приложениями XR. Все разрешения в этом разделе считаются опасными разрешениями, поэтому вы должны объявить их в манифесте приложения и запросить их во время выполнения.
-
android.permission.EYE_TRACKING
Варианты использования, требующие этого разрешения
Представление позы и ориентации глаз пользователя для использования с аватарами.
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Функции Unity, для которых требуется это разрешение
-
android.permission.EYE_TRACKING_COARSE
Варианты использования, требующие этого разрешения
Представление позы, статуса и ориентации глаз пользователя, например, для использования с аватарами. Используйте это разрешение, когда необходимы данные отслеживания глаз низкой точности.
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Функции Unity, для которых требуется это разрешение
-
android.permission.EYE_TRACKING_FINE
Варианты использования, требующие этого разрешения
Взгляд для выбора, ввода и взаимодействия
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.FACE_TRACKING
Варианты использования, требующие этого разрешения
Отслеживание и рендеринг выражений лица
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.HAND_TRACKING
Варианты использования, требующие этого разрешения
Отслеживание положения суставов рук, угловых и линейных скоростей; Использование сетчатого представления рук пользователя
Функции Jetpack XR SDK, для которых требуется это разрешение
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.SCENE_UNDERSTANDING
Варианты использования, требующие этого разрешения
Оценка освещенности; проецирование сквозных отверстий на сетчатые поверхности; выполнение raycasts для отслеживаемых объектов в окружающей среде; слежение за самолетом; отслеживание объектов; работа с глубиной для окклюзии и проверки попадания; постоянные якоря.
Функции Jetpack XR SDK, для которых требуется это разрешение
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.SCENE_UNDERSTANDING_COARSE
Варианты использования, требующие этого разрешения
Оценка освещенности; проецирование сквозных отверстий на сетчатые поверхности; выполнение raycasts для отслеживаемых объектов в окружающей среде; слежение за самолетом; отслеживание объектов; постоянные якоря.
Функции Jetpack XR SDK, для которых требуется это разрешение
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
-
android.permission.SCENE_UNDERSTANDING_FINE
Варианты использования, требующие этого разрешения
Текстура глубины
Функции Jetpack XR SDK, для которых требуется это разрешение
н/д
Расширения OpenXR, которым требуется это разрешение
Функции Unity, для которых требуется это разрешение
Обеспечьте качество приложения Android XR
Чтобы ваше приложение было удобным для пользователей, ознакомьтесь с нашими рекомендациями по обеспечению качества приложений для Android XR .
Упаковывайте и распространяйте свое приложение для Android XR.
Android XR предлагает широкий выбор приложений и возможностей для гарнитур XR через Google Play. В руководстве по упаковке и распространению приложений для Android XR вы найдете информацию о начале работы с Play Store и Play Console, публикации треков, подготовке пакетов приложений для Android и ограничениях на размер приложений.
,Android XR — это расширение платформы и экосистемы Android. Android XR SDK предназначен для того, чтобы вы могли создавать приложения XR, используя знакомые платформы и инструменты Android или используя открытые стандарты, такие как OpenXR и WebXR. Все совместимые мобильные приложения или приложения с большим экраном будут доступны для установки на гарнитуры XR из Play Store. Ознакомьтесь с рекомендациями по совместимости, чтобы узнать, совместимо ли ваше приложение.
В этом руководстве описаны следующие области:
- Выбор инструментов и технологий разработки
- Разработка приложений для Android XR
- Настройка файла манифеста вашего приложения
- Рекомендации по совместимости манифеста приложения
- Общие сведения о разрешениях для Android XR
- Обеспечение качества приложения Android XR
- Упаковка и распространение вашего приложения для Android XR
Выберите свои инструменты и технологии разработки
При создании приложения для Android XR вы можете выбрать одну из следующих платформ и технологий разработки:
Джетпак XR SDK
Jetpack XR SDK содержит библиотеки Android XR Jetpack , созданные с учетом уникальных возможностей устройств XR. Начните с этого SDK, если хотите выполнить одно из следующих действий:
- Оптимизируйте или улучшите существующее приложение для мобильных устройств или планшетов Android.
- Создайте новое приложение Android XR с помощью Android Studio и Jetpack.
Если вы уже умеете разрабатывать приложения с помощью Android Jetpack, вам подойдет Jetpack XR SDK. Он предназначен для полной интеграции с этими платформами и библиотеками и позволяет использовать имеющиеся знания для создания захватывающих XR-приложений.
Узнайте больше о разработке с помощью Jetpack XR SDK .
Единство
Unity Engine — это механизм разработки 3D-изображений в реальном времени, который позволяет художникам, дизайнерам и разработчикам сотрудничать для создания захватывающих и интерактивных впечатлений. Поддержка Android XR в Unity дает вам высокий уровень контроля над разрабатываемыми вами 3D-проектами, а также преимущества устоявшейся поддержки Unity OpenXR и экосистемы разработчиков.
Если у вас уже есть опыт XR, созданный с помощью Unity, или вы знакомы с разработкой Unity, начните с этого варианта.
Узнайте больше о разработке с помощью Unity для Android XR .
OpenXR
OpenXR — это бесплатный открытый стандарт, который можно использовать для создания высокопроизводительных многоплатформенных приложений XR. Android XR поддерживает OpenXR 1.0 и 1.1, и мы расширяем спецификацию новыми расширениями для Android XR. Поскольку Android XR построен на открытых стандартах, инструменты разработки, поддерживающие OpenXR и Android, должны быть совместимы с Android XR.
Узнайте больше о поддержке OpenXR для Android XR .
ВебXR
WebXR позволяет создавать захватывающие возможности для Интернета. Он обеспечивает доступ к устройствам VR и AR в совместимых веб-браузерах, таких как Chrome на Android XR.
Начните с этого варианта, если вы хотите создать интерфейс XR для Интернета или добавить возможности XR в веб-приложение. Существующие возможности WebXR также будут работать на Android XR.
Узнайте больше о создании веб-приложений с помощью WebXR .
Дизайн для XR
XR расширяет возможности проектирования за пределы традиционных плоских экранов; вы можете создавать захватывающие впечатления, сочетающие физическую и виртуальную реальность. Независимо от того, создаете ли вы совершенно новый интерфейс или добавляете элементы погружения в существующее приложение, руководство по дизайну для Android XR поможет вам начать работу.
Настройте файл манифеста вашего приложения
Как и в других проектах приложений Android, ваше приложение Android XR должно иметь файл AndroidManifest.xml с определенными настройками манифеста. Файл манифеста содержит важную информацию о вашем приложении для инструментов сборки Android, операционной системы Android и Google Play. Дополнительные сведения см. в обзорном руководстве по манифесту приложения .
Для приложений, дифференцированных XR , ваш файл манифеста должен содержать следующие элементы и атрибуты:
Свойство PROPERTY_ACTIVITY_XR_START_MODE
Свойство android:name="android.window.PROPERTY_ACTIVITY_XR_START_MODE"
сообщает системе, что действие должно запускаться в определенном режиме при запуске действия.
Для этого свойства возможны три значения:
-
XR_ACTIVITY_START_MODE_HOME_SPACE
(только Jetpack XR SDK) -
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED
(только Jetpack XR SDK) -
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
(только OpenXR)
XR_ACTIVITY_START_MODE_HOME_SPACE
(Только приложения, созданные с помощью Jetpack XR SDK)
Используйте этот режим запуска для запуска приложения в Home Space. В Home Space несколько приложений могут работать одновременно, поэтому пользователи могут выполнять несколько задач одновременно. Любое приложение для Android мобильного или большого экрана может работать в домашнем пространстве, а также приложения XR, созданные с использованием JetPack XR SDK.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_HOME_SPACE" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Xr_activity_start_mode_full_space_managed
(Приложения, построенные только с JetPack XR SDK)
Используйте этот режим запуска, чтобы запустить ваше приложение в полном пространстве. В полном пространстве только одно приложение работает за раз, без границ пространства, и все остальные приложения скрыты.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Xr_activity_start_mode_full_space_unmanaged
(Приложения, построенные только с OpenXR)
Приложения, созданные с запуском OpenXR в полном пространстве и должны использовать XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
MODE. Неуправляемые полные пространственные сигналы в Android XR Приложение использует OpenXR.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Функции PackageManager для приложений XR
Когда вы распространяете приложения через Google Play Store , вы можете указать необходимые аппаратные или программные функции в манифесте приложения. Элемент uses-feature
позволяет Play Store соответствующим образом фильтровать приложения, показанные пользователям.
Следующие функции специфичны для приложений XR.
Android.software.xr.immersive
Если ваше приложение предназначено для платформы Android XR и работает только на платформах, которые поддерживают XR, установите значение true. Если в вашем приложении есть некоторые оптимизированные функции XR, но также может работать на устройствах без XR, установите значение на false.
Приложения, построенные с OpenXR или Unity, должны установить это значение true.
<uses-feature android:name="android.software.xr.immersive" android:required="true" />
Android.hardware.xr.input.controller
Эта функция указывает на то, что приложение требует ввода от высокой точной, 6DOF (степени свободы) контроллера движения для правильного функционирования. Если ваше приложение поддерживает контроллеры и не может функционировать без них, установите значение true. Если ваше приложение поддерживает контроллеры, но может работать без них, установите его на false.
<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />
Android.hardware.xr.input.hand_tracking
Этот флаг указывает на то, что приложение требует высокого отслеживания рук, чтобы правильно функционировать, включая положение, ориентацию и скорость суставов в руке пользователя. Если ваше приложение поддерживает отслеживание рук и не может функционировать без него, установите значение TRUE. Если ваше приложение поддерживает отслеживание рук, но может работать без него, установите его на false.
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />
android.hardware.xr.input.eye_tracking
Этот флаг указывает, что приложение требует высокого отслеживания глаз для ввода для правильной функции. Если ваше приложение поддерживает отслеживание глаз для ввода и не может функционировать без него, установите значение true. Если ваше приложение поддерживает отслеживание глаз для ввода, но может работать без него, установите его на false.
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />
Приложения Manifest Companyations для мобильных и больших экранных приложений
Как описано в разделе «Функции PackAgeManager для приложений XR» , приложения заявляют, что они используют функцию, объявив ее в манифесте <uses-feature>
в манифесте приложения. Некоторые функции, такие как телефония или GPS, могут быть совместимы со всеми устройствами.
Неподдерживаемые функции
Приложения Google Play Store фильтруют приложения для установки на устройстве с помощью следующих объявлений функций Android.
Аппаратное обеспечение камеры
android.hardware.camera.autofocus
android.hardware.camera.capability.manual_post_processing
android.hardware.camera.capability.manual_sensor
android.hardware.camera.capability.raw
android.hardware.camera.concurrent
android.hardware.camera.external
android.hardware.camera.level.full
Подключение
android.hardware.ipsec_tunnel_migration
Конфигурация устройства
Конфигурация форм -фактора
android.hardware.type.automotive
android.hardware.type.embedded
android.hardware.type.television
android.software.leanback_only
Вход
android.software.input_methods
Расположение
Рядом с полевой связи
Конфигурация безопасности и аппаратное обеспечение
android.hardware.se.omapi.uicc
android.hardware.biometrics.face
android.hardware.identity_credential
android.hardware.identity_credential_direct_access
android.hardware.keystore.limited_use_key
android.hardware.keystore.single_use_key
android.hardware.strongbox_keystore
Датчики
android.hardware.sensor.accelerometer_limited_axes
android.hardware.sensor.accelerometer_limited_axes_uncalibrated
android.hardware.sensor.ambient_temperature
android.hardware.sensor.barometer
android.hardware.sensor.gyroscope_limited_axes
android.hardware.sensor.gyroscope_limited_axes_uncalibrated
android.hardware.sensor.heading
android.hardware.sensor.heartrate
android.hardware.sensor.heartrate.ecg
android.hardware.sensor.hinge_angle
android.hardware.sensor.relative_humidity
android.hardware.sensor.stepcounter
android.hardware.sensor.stepdetector
Конфигурация программного обеспечения
android.software.connectionservice
android.software.expanded_picture_in_picture
android.software.live_wallpaper
android.software.picture_in_picture
android.software.wallet_location_based_suggestions
Телефония
android.hardware.telephony.calling
android.hardware.telephony.cdma
android.hardware.telephony.data
android.hardware.telephony.euicc
android.hardware.telephony.euicc.mep
android.hardware.telephony.gsm
android.hardware.telephony.ims
android.hardware.telephony.mbms
android.hardware.telephony.messaging
android.hardware.telephony.radio.access
android.hardware.telephony.subscription
Виртуальная реальность (наследие)
android.hardware.vr.headtracking
android.hardware.vr.high_performance
Виджеты
Понять разрешения для XR
Подобно приложениям на мобильных устройствах и других форм -факторах, некоторые возможности, предлагаемые приложениями XR, могут потребовать, чтобы ваше приложение объявило разрешения в файле Android -Manifest вашего приложения. В случае опасных разрешений вашему приложению может потребоваться запросы разрешений на выполнение . Прочитайте разрешения на Android и лучшие практики разрешения для более подробной информации.
Разрешения на функции XR
Следующие разрешения могут использоваться приложениями XR. Все разрешения в этом разделе считаются опасными разрешениями, поэтому вы должны объявить их в своем манифесте приложения и запросить их во время выполнения.
-
android.permission.EYE_TRACKING
Установки использования, требующие этого разрешения
Представление позы и ориентации пользователя для использования с аватарами.
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Особенности единства, которые требуют этого разрешения
-
android.permission.EYE_TRACKING_COARSE
Установки использования, требующие этого разрешения
Представляя позу пользователя, статус и ориентацию, например, для использования с аватарами. Используйте это разрешение, когда необходимы данные отслеживания глаз с низким спецификацией.
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Особенности единства, которые требуют этого разрешения
-
android.permission.EYE_TRACKING_FINE
Установки использования, требующие этого разрешения
Глаза при выборе, вводе и взаимодействии
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.FACE_TRACKING
Установки использования, требующие этого разрешения
Отслеживание и выявление выражений лица
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.HAND_TRACKING
Установки использования, требующие этого разрешения
Отслеживание позы рук и угловых и линейных скоростей; Использование сетки изображения рук пользователя
Функции JetPack XR SDK, которые требуют этого разрешения
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.SCENE_UNDERSTANDING
Установки использования, требующие этого разрешения
Оценка света; проецируя передачу на сетчатые поверхности; Выполнение Raycasts против отслеживания в окружающей среде; отслеживание самолета; Отслеживание объектов; Работа с глубиной для окклюзии и тестирования попадает; Постоянные якоря.
Функции JetPack XR SDK, которые требуют этого разрешения
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.SCENE_UNDERSTANDING_COARSE
Установки использования, требующие этого разрешения
Оценка света; проецируя передачу на сетчатые поверхности; Выполнение Raycasts против отслеживания в окружающей среде; отслеживание самолета; Отслеживание объектов; Постоянные якоря.
Функции JetPack XR SDK, которые требуют этого разрешения
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.SCENE_UNDERSTANDING_FINE
Установки использования, требующие этого разрешения
Глубина текстура
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
Обеспечить качество приложения Android XR
Чтобы убедиться, что ваше приложение обеспечивает отличный пользовательский опыт, просмотрите наши рекомендации по качеству приложения Android XR .
Пакет и распространите приложение для Android XR
Android XR привносит широкий спектр приложений и опыта в гарнитуры XR через Google Play. В Руководстве по упаковке и распределению приложений для Android XR вы найдете информацию о начале работы с Play Store и Play Console, публикацией треков, подготовке пакетов приложения Android и ограничениях размера приложений.
,Android XR - это расширение платформы Android и экосистемы. Android XR SDK предназначен для того, чтобы позволить вам создавать приложения XR с использованием знакомых фреймворков и инструментов Android или использования открытых стандартов, таких как OpenXR и WebXR. Все совместимые мобильные или большие экранные приложения будут доступны для установки на херсиях XR из Play Store. Просмотрите соображения совместимости , чтобы увидеть, совместимо ли ваше приложение.
Это руководство объясняет следующие области:
- Выбор инструментов и технологий разработки
- Проектирование приложений для Android XR
- Настройка манифестного файла вашего приложения
- Приложение Manifest соображения совместимости
- Понимание разрешений для Android XR
- Обеспечение качества приложения Android XR
- Упаковка и распространение вашего приложения для Android XR
Выберите инструменты и технологии разработки
При создании приложения для Android XR вы можете выбрать из следующих платформ и технологий разработки:
JetPack XR SDK
JetPack XR SDK содержит библиотеки Android XR JetPack , созданные, чтобы воспользоваться уникальными возможностями XR -устройств. Начните с этого SDK, если вы хотите сделать любое из следующего:
- Оптимизировать или улучшить существующее приложение для Android Mobile или планшет
- Создайте новое приложение Android XR с помощью Android Studio и JetPack
Если вам уже удобно развиваться с Android JetPack, JetPack XR SDK естественно подходит для вас. Он предназначен для беспрепятственной интеграции с этими структурами и библиотеками, и позволяет вам использовать существующие знания для создания иммерсивного опыта XR.
Узнайте больше о разработке с JetPack XR SDK .
Единство
Enty Engine -это 3D-двигатель разработки в реальном времени, который позволяет художникам, дизайнерам и разработчикам сотрудничать для создания иммерсивного и интерактивного опыта. Поддержка Android XR от Unity дает вам высокий уровень контроля над 3D -опытом, который вы разрабатываете, в то же время извлекая выгоду из экосистемы Unity OpenXR и экосистемы разработчика.
Если у вас уже есть опыт XR, построенный с Unity или если вы знакомы с разработкой Unity, начните с этой опции.
Узнайте больше о разработке с Unity для Android XR .
OpenXr
OpenXR -это открытый стандарт без роялти, который можно использовать для создания высокопроизводительных, многоплатформенных XR-опытов. Android XR поддерживает OpenXR 1.0 и 1.1, и мы расширяем спецификацию с новыми расширениями для Android XR. Поскольку Android XR построен на открытых стандартах, инструменты разработки, которые поддерживают OpenXR и Android, должны быть совместимы с Android XR.
Узнайте больше о поддержке OpenXR для Android XR .
Webxr
Webxr позволяет вам создавать захватывающий опыт для Интернета. Он обеспечивает доступ к устройствам VR и AR в совместимых веб -браузерах, таких как Chrome на Android XR.
Начните с этой опции, если вы хотите создать опыт XR для Интернета или если вы хотите добавить возможности XR в веб -приложение. Существующие опыт WebXR также будут работать на Android XR.
Узнайте больше о создании веб -приложений с Webxr .
Дизайн для XR
XR расширяет конструктивную поверхность за пределами традиционных плоских экранов; Вы можете спроектировать иммерсивные переживания, которые сочетают в себе физическую и виртуальную реальность. Независимо от того, создаете ли вы совершенно новый опыт или добавляете иммерсивные элементы в существующее приложение, дизайн для Android XR Guide может помочь вам начать работу.
Настройте манифестный файл вашего приложения
Как и в других проектах приложения Android, ваше приложение для Android XR должно иметь файл AndroidManifest.xml с конкретными настройками манифеста. Манифестный файл описывает важную информацию о вашем приложении для инструментов сборки Android, операционной системы Android и Google Play. См. Руководство по обзору Manifest App для получения дополнительной информации.
Для приложений, дифференцированных XR , ваш манифестный файл должен содержать следующие элементы и атрибуты:
Property_activity_xr_start_mode
Свойство android:name="android.window.PROPERTY_ACTIVITY_XR_START_MODE"
позволяет системе знать, что деятельность должна быть запущена в определенном режиме при запуске деятельности.
Есть три возможных значения для этого свойства:
-
XR_ACTIVITY_START_MODE_HOME_SPACE
(только jetpack xr sdk) -
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED
(только jetpack xr sdk) -
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
(только openxr)
Xr_activity_start_mode_home_space
(Приложения, построенные только с JetPack XR SDK)
Используйте этот режим запуска, чтобы запустить ваше приложение в домашнем пространстве. В домашнем пространстве несколько приложений могут работать бок о бок, поэтому пользователи могут многозадачно. Любое приложение для Android мобильного или большого экрана может работать в домашнем пространстве, а также приложения XR, созданные с использованием JetPack XR SDK.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_HOME_SPACE" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Xr_activity_start_mode_full_space_managed
(Приложения, построенные только с JetPack XR SDK)
Используйте этот режим запуска, чтобы запустить ваше приложение в полном пространстве. В полном пространстве только одно приложение работает за раз, без границ пространства, и все остальные приложения скрыты.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Xr_activity_start_mode_full_space_unmanaged
(Приложения, построенные только с OpenXR)
Приложения, созданные с запуском OpenXR в полном пространстве и должны использовать XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED
MODE. Неуправляемые полные пространственные сигналы в Android XR Приложение использует OpenXR.
<manifest ... >
<application ... >
<property
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />
<activity
android:name="com.example.myapp.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Функции PackageManager для приложений XR
Когда вы распространяете приложения через Google Play Store , вы можете указать необходимые аппаратные или программные функции в манифесте приложения. Элемент uses-feature
позволяет Play Store соответствующим образом фильтровать приложения, показанные пользователям.
Следующие функции специфичны для приложений XR.
Android.software.xr.immersive
Если ваше приложение предназначено для платформы Android XR и работает только на платформах, которые поддерживают XR, установите значение true. Если в вашем приложении есть некоторые оптимизированные функции XR, но также может работать на устройствах без XR, установите значение на false.
Приложения, построенные с OpenXR или Unity, должны установить это значение true.
<uses-feature android:name="android.software.xr.immersive" android:required="true" />
Android.hardware.xr.input.controller
Эта функция указывает на то, что приложение требует ввода от высокой точной, 6DOF (степени свободы) контроллера движения для правильного функционирования. Если ваше приложение поддерживает контроллеры и не может функционировать без них, установите значение true. Если ваше приложение поддерживает контроллеры, но может работать без них, установите его на false.
<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />
Android.hardware.xr.input.hand_tracking
Этот флаг указывает на то, что приложение требует высокого отслеживания рук, чтобы правильно функционировать, включая положение, ориентацию и скорость суставов в руке пользователя. Если ваше приложение поддерживает отслеживание рук и не может функционировать без него, установите значение TRUE. Если ваше приложение поддерживает отслеживание рук, но может работать без него, установите его на false.
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />
android.hardware.xr.input.eye_tracking
Этот флаг указывает, что приложение требует высокого отслеживания глаз для ввода для правильной функции. Если ваше приложение поддерживает отслеживание глаз для ввода и не может функционировать без него, установите значение true. Если ваше приложение поддерживает отслеживание глаз для ввода, но может работать без него, установите его на false.
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />
Приложения Manifest Companyations для мобильных и больших экранных приложений
Как описано в разделе «Функции PackAgeManager для приложений XR» , приложения заявляют, что они используют функцию, объявив ее в манифесте <uses-feature>
в манифесте приложения. Некоторые функции, такие как телефония или GPS, могут быть совместимы со всеми устройствами.
Неподдерживаемые функции
Приложения Google Play Store фильтруют приложения для установки на устройстве с помощью следующих объявлений функций Android.
Аппаратное обеспечение камеры
android.hardware.camera.autofocus
android.hardware.camera.capability.manual_post_processing
android.hardware.camera.capability.manual_sensor
android.hardware.camera.capability.raw
android.hardware.camera.concurrent
android.hardware.camera.external
android.hardware.camera.level.full
Подключение
android.hardware.ipsec_tunnel_migration
Конфигурация устройства
Конфигурация форм -фактора
android.hardware.type.automotive
android.hardware.type.embedded
android.hardware.type.television
android.software.leanback_only
Вход
android.software.input_methods
Расположение
Рядом с полевой связи
Конфигурация безопасности и аппаратное обеспечение
android.hardware.se.omapi.uicc
android.hardware.biometrics.face
android.hardware.identity_credential
android.hardware.identity_credential_direct_access
android.hardware.keystore.limited_use_key
android.hardware.keystore.single_use_key
android.hardware.strongbox_keystore
Датчики
android.hardware.sensor.accelerometer_limited_axes
android.hardware.sensor.accelerometer_limited_axes_uncalibrated
android.hardware.sensor.ambient_temperature
android.hardware.sensor.barometer
android.hardware.sensor.gyroscope_limited_axes
android.hardware.sensor.gyroscope_limited_axes_uncalibrated
android.hardware.sensor.heading
android.hardware.sensor.heartrate
android.hardware.sensor.heartrate.ecg
android.hardware.sensor.hinge_angle
android.hardware.sensor.relative_humidity
android.hardware.sensor.stepcounter
android.hardware.sensor.stepdetector
Конфигурация программного обеспечения
android.software.connectionservice
android.software.expanded_picture_in_picture
android.software.live_wallpaper
android.software.picture_in_picture
android.software.wallet_location_based_suggestions
Телефония
android.hardware.telephony.calling
android.hardware.telephony.cdma
android.hardware.telephony.data
android.hardware.telephony.euicc
android.hardware.telephony.euicc.mep
android.hardware.telephony.gsm
android.hardware.telephony.ims
android.hardware.telephony.mbms
android.hardware.telephony.messaging
android.hardware.telephony.radio.access
android.hardware.telephony.subscription
Виртуальная реальность (наследие)
android.hardware.vr.headtracking
android.hardware.vr.high_performance
Виджеты
Понять разрешения для XR
Подобно приложениям на мобильных устройствах и других форм -факторах, некоторые возможности, предлагаемые приложениями XR, могут потребовать, чтобы ваше приложение объявило разрешения в файле Android -Manifest вашего приложения. В случае опасных разрешений вашему приложению может потребоваться запросы разрешений на выполнение . Прочитайте разрешения на Android и лучшие практики разрешения для более подробной информации.
Разрешения на функции XR
Следующие разрешения могут использоваться приложениями XR. Все разрешения в этом разделе считаются опасными разрешениями, поэтому вы должны объявить их в своем манифесте приложения и запросить их во время выполнения.
-
android.permission.EYE_TRACKING
Установки использования, требующие этого разрешения
Представление позы и ориентации пользователя для использования с аватарами.
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Особенности единства, которые требуют этого разрешения
-
android.permission.EYE_TRACKING_COARSE
Установки использования, требующие этого разрешения
Представляя позу пользователя, статус и ориентацию, например, для использования с аватарами. Используйте это разрешение, когда необходимы данные отслеживания глаз с низким спецификацией.
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
XR_ANDROID_avatar_eyes
(устарело)XR_ANDROID_eye_tracking
(для грубого отслеживания)Особенности единства, которые требуют этого разрешения
-
android.permission.EYE_TRACKING_FINE
Установки использования, требующие этого разрешения
Глаза при выборе, вводе и взаимодействии
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.FACE_TRACKING
Установки использования, требующие этого разрешения
Отслеживание и выявление выражений лица
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.HAND_TRACKING
Установки использования, требующие этого разрешения
Отслеживание позы рук и угловых и линейных скоростей; Использование сетки изображения рук пользователя
Функции JetPack XR SDK, которые требуют этого разрешения
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.SCENE_UNDERSTANDING
Установки использования, требующие этого разрешения
Оценка света; проецируя передачу на сетчатые поверхности; Выполнение Raycasts против отслеживания в окружающей среде; отслеживание самолета; Отслеживание объекта; Работа с глубиной для окклюзии и тестирования попадает; Постоянные якоря.
Функции JetPack XR SDK, которые требуют этого разрешения
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.SCENE_UNDERSTANDING_COARSE
Установки использования, требующие этого разрешения
Оценка света; проецируя передачу на сетчатые поверхности; Выполнение Raycasts против отслеживания в окружающей среде; отслеживание самолета; Отслеживание объектов; Постоянные якоря.
Функции JetPack XR SDK, которые требуют этого разрешения
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
-
android.permission.SCENE_UNDERSTANDING_FINE
Установки использования, требующие этого разрешения
Глубина текстура
Функции JetPack XR SDK, которые требуют этого разрешения
н/д
Расширения OpenXR, которые требуют этого разрешения
Особенности единства, которые требуют этого разрешения
Обеспечить качество приложения Android XR
Чтобы убедиться, что ваше приложение обеспечивает отличный пользовательский опыт, просмотрите наши рекомендации по качеству приложения Android XR .
Пакет и распространите приложение для Android XR
Android XR привносит широкий спектр приложений и опыта в гарнитуры XR через Google Play. В Руководстве по упаковке и распределению приложений для Android XR вы найдете информацию о начале работы с Play Store и Play Console, публикацией треков, подготовке пакетов приложения Android и ограничениях размера приложений.