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

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

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

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

  • persistent_cloud_anchor_java — это реализация варианта использования совместного проекта. Он использует авторизацию без ключа для авторизации вызовов API ARCore. Поскольку для обмена идентификаторами Cloud Anchor между устройствами не используется серверная часть Firebase, его гораздо проще приступить к работе.
  • 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 для демонстрации функциональности Cloud Anchor. Выполните следующие действия, чтобы открыть приложения в Android Studio.

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

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

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

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

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

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

Настройте общий доступ к идентификатору Cloud Anchor

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

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

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

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

Пример приложения cloud_anchor_java использует базы данных Firebase Realtime для обмена идентификаторами 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 отправляется запрос хоста, который включает данные, представляющие положение привязки относительно визуальных объектов рядом с ней.

Успешный запрос хоста устанавливает привязку в размещенном месте и присваивает ей идентификатор облачной привязки. Если запрос хоста успешен, приложение должно отобразить код комнаты. Вы можете использовать этот код для доступа к ранее размещенным привязкам для этой комнаты на любом устройстве.

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

  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 . Вы можете получить правильное значение для этого свойства, убедившись, что база данных реального времени создана, и загрузив google-services.json .


Поместите якорь

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

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

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

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

Что дальше