Краткое руководство по Cloud Anchors для Android

Попробуйте разместить и разрешить облачные якоря в примерах приложений cloud_anchor_java и persistent_cloud_anchor_java .

Какое демонстрационное приложение вам следует использовать?

Облачные якоря — это якоря , размещенные на облачной конечной точке API ARCore . Этот API позволяет пользователям обмениваться данными в одном и том же приложении. Постоянные облачные якоря — это облачные якоря, которые могут оставаться активными более 24 часов.

  • persistent_cloud_anchor_java — это реализация сценария использования для совместной работы над проектом. Она использует бесключевую авторизацию для авторизации вызовов API ARCore. Поскольку она не использует бэкенд Firebase для обмена идентификаторами Cloud Anchor между устройствами, ее гораздо проще запустить и использовать.
  • cloud_anchor_java — это реализация сценария многопользовательской игры. Она использует ключ API для авторизации вызовов API ARCore.

Предварительные требования

Требования

Аппаратное обеспечение

Программное обеспечение

  • Android Studio версии 3.0 или более поздней, а также платформа Android SDK версии 7.0 (уровень API 24) или выше.
  • ARCore SDK для Android, который можно получить двумя способами:
    • Скачайте его с GitHub и распакуйте на свой компьютер.
    • Клонируйте репозиторий с помощью следующей команды:
      git clone https://github.com/google-ar/arcore-android-sdk.git

Откройте демонстрационное приложение в Android Studio.

В состав ARCore SDK входят примеры приложений cloud_anchor_java и persistent_cloud_anchor_java , демонстрирующие функциональность облачных якорей. Чтобы открыть приложения в Android Studio, выполните следующие действия.

Постоянные облачные якоря

  1. В Android Studio нажмите «Открыть» .

  2. Перейдите в папку, где на вашем компьютере находится каталог arcore-android-sdk . Не открывайте всю папку SDK целиком. Вместо этого перейдите в samples > persistent_cloud_anchor_java и нажмите « Открыть» .

Облачные якоря

  1. В Android Studio нажмите «Открыть» .

  2. Перейдите в папку, где на вашем компьютере находится каталог arcore-android-sdk . Не открывайте всю папку SDK целиком. Вместо этого перейдите в samples > cloud_anchor_java и нажмите « Открыть» .

Настройте совместное использование идентификаторов Cloud Anchor ID.

Идентификаторы облачных якорей — это строки, которые идентифицируют размещенные облачные якоря. Они используются для разрешения или рендеринга 3D-объектов, прикрепленных к размещенным якорям.

Постоянные облачные якоря

Совместное использование идентификатора Cloud Anchor ID осуществляется локально в приложении. Вам ничего не нужно будет здесь делать.

Облачные якоря

В примере приложения cloud_anchor_java используются базы данных Firebase Realtime Databases для обмена идентификаторами Cloud Anchor между устройствами. В своих приложениях вы можете использовать другое решение.

  1. Добавьте Firebase в ваше приложение вручную. Имя пакета cloud_anchor_javacom.google.ar.core.examples.java.cloudanchor . Вы можете найти его в main/AndroidManifest.xml .
  2. Загрузите файл google-services.json , который вы сгенерировали при добавлении Firebase в ваше приложение.
  3. Создайте базу данных реального времени с помощью Firebase.
  4. В Android Studio добавьте файл google-services.json в каталог app вашего проекта.

Авторизация вызовов API ARCore

Разрешите вызовы к API ARCore для размещения и разрешения облачных якорей для вашего приложения. Следуйте инструкциям по использованию API ARCore в Google Cloud и используйте бесключевую авторизацию для постоянных облачных якорей или авторизацию с помощью ключа API для облачных якорей.

Соберите и запустите демонстрационное приложение.

Постоянные облачные якоря

Запустите приложение

  1. Убедитесь, что на вашем устройстве включены параметры разработчика и отладка по USB .
  2. Подключите ваше устройство через USB к компьютеру разработчика.
  3. В Android Studio выберите ваше устройство в качестве целевого объекта развертывания и нажмите «Запустить» .

На вашем устройстве должен запуститься persistent_cloud_anchor_java , который побудит ARCore обнаружить плоскости перед камерой устройства.

Если авторизация в Google Cloud не удалась, см. раздел «Устранение неполадок» .

Установите якорь

  1. Как только приложение начнет обнаруживать самолеты, коснитесь экрана, чтобы установить якорь на одном из обнаруженных самолетов.
  2. Нажмите кнопку HOST , чтобы разместить установленный якорь. Это отправит запрос на размещение в API ARCore, который будет содержать данные, представляющие положение якоря относительно находящихся рядом визуальных объектов.

Успешный запрос на размещение объекта устанавливает якорь в указанном месте и присваивает ему идентификатор облачного якоря (Cloud Anchor ID). В случае успешного запроса на размещение объекта приложение должно отобразить код комнаты. Вы можете использовать этот код для доступа к ранее размещенным якорям для этой комнаты на любом устройстве.

Разрешить якорь

  1. Нажмите «РАЗРЕШИТЬ» и введите ранее полученный код комнаты, чтобы получить доступ к якорям, размещенным в этой комнате. Это отправит запрос на разрешение к API ARCore, который вернет идентификаторы всех якорей, размещенных в данный момент в комнате. persistent_cloud_anchor_java будет использовать эти идентификаторы для отображения 3D-объектов, прикрепленных к размещенным якорям.

Облачные якоря

Запустите приложение

  1. Убедитесь, что на вашем устройстве включены параметры разработчика и отладка по USB .
  2. Подключите ваше устройство через USB к компьютеру разработчика.
  3. В Android Studio выберите ваше устройство в качестве целевого объекта развертывания и нажмите «Запустить» .

На вашем устройстве должен запуститься cloud_anchor_java , который побудит ARCore обнаружить плоскости перед камерой устройства.

Ошибка: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your getInstance

Если вы столкнулись с этой ошибкой, убедитесь, что свойство firebase_url присутствует в google-services.json . Правильное значение для этого свойства можно получить, убедившись, что база данных Realtime Database создана, и загрузив файл google-services.json .


Установите якорь

  1. Как только приложение начнет обнаруживать самолеты, коснитесь экрана, чтобы установить якорь на одном из обнаруженных самолетов.
  2. Нажмите кнопку HOST , чтобы разместить установленный якорь. Это отправит запрос на размещение в API ARCore, который будет содержать данные, представляющие положение якоря относительно находящихся рядом визуальных объектов.

Успешный запрос на размещение объекта устанавливает якорь в указанном месте и присваивает ему идентификатор Cloud Anchors ID. В случае успешного запроса на размещение объекта приложение должно отобразить код комнаты. Вы можете использовать этот код для доступа к ранее размещенным якорям для этой комнаты на любом устройстве.

Разрешить якорь

  1. Нажмите кнопку «РАЗРЕШИТЬ» и введите ранее полученный код комнаты, чтобы получить доступ к якорям, размещенным в этой комнате. Это отправит запрос на разрешение к API ARCore, который вернет идентификаторы всех якорей, размещенных в данный момент в комнате. cloud_anchor_java будет использовать эти идентификаторы для рендеринга 3D-объектов, прикрепленных к размещенным якорям.

Что дальше?