Guía de inicio rápido de Cloud Anchors para Android

Prueba alojar y resolver Cloud Anchors en las apps de ejemplo cloud_anchor_java y persistent_cloud_anchor_java.

¿Qué app de ejemplo deberías usar?

Las Cloud Anchors son anclas que se alojan en el extremo de nube de la API de ARCore. Esta API permite que los usuarios compartan experiencias en la misma app. Las Cloud Anchors persistentes son Cloud Anchors que se pueden alojar por más de 24 horas.

  • persistent_cloud_anchor_java es una implementación de un caso de uso de un proyecto colaborativo. Usa la autorización sin clave para autorizar las llamadas a la API de ARCore. Debido a que no utiliza un backend de Firebase para compartir los IDs de Cloud Anchor entre dispositivos, es mucho más fácil poner en marcha.
  • cloud_anchor_java es una implementación de un caso de uso de modo multijugador. Usa una clave de API para autorizar las llamadas a la API de ARCore.

Requisitos previos

Requisitos

Hardware

Software

  • Android Studio versión 3.0 o posterior con la plataforma del SDK de Android versión 7.0 (nivel de API 24) o posterior
  • El SDK de ARCore para Android, que puedes obtener de las siguientes dos maneras:
    • Descárgala de GitHub y extráela en tu máquina.
    • Clona el repositorio con el siguiente comando:
      git clone https://github.com/google-ar/arcore-android-sdk.git

Abre la app de ejemplo en Android Studio

El SDK de ARCore proporciona las apps de ejemplo cloud_anchor_java y persistent_cloud_anchor_java para demostrar la funcionalidad de Cloud Anchors. Sigue estos pasos para abrir las apps en Android Studio.

Cloud Anchors persistentes

  1. En Android Studio, haz clic en Open.

  2. Navega hasta la ubicación en la que está almacenado el directorio arcore-android-sdk en tu equipo. No abras toda la carpeta del SDK. En su lugar, ve a muestras > persistent_cloud_anchor_java y haz clic en persistent_cloud_anchor_java.

Cloud Anchors

  1. En Android Studio, haz clic en Open.

  2. Navega hasta la ubicación en la que está almacenado el directorio arcore-android-sdk en tu equipo. No abras toda la carpeta del SDK. En su lugar, ve a muestras > cloud_anchor_java y haz clic en Abrir.

Configura el uso compartido del ID de Cloud Anchor

Los ID de Cloud Anchor son strings que identifican las Cloud Anchors alojadas. Se usan para resolver o renderizar los objetos 3D adjuntos a las anclas alojadas.

Cloud Anchors persistentes

El uso compartido de ID de Cloud Anchor se mantiene de forma local en la app. No es necesario que realices ninguna acción aquí.

Cloud Anchors

La app de ejemplo cloud_anchor_java usa Realtime Databases de Firebase para compartir los IDs de Cloud Anchor entre dispositivos. Puedes usar una solución diferente en tus propias apps.

  1. Agrega Firebase de forma manual a tu app. El nombre del paquete cloud_anchor_java es com.google.ar.core.examples.java.cloudanchor. Puedes encontrarlo en main/AndroidManifest.xml.
  2. Descarga el archivo google-services.json que generaste cuando agregaste Firebase a tu app.
  3. Crea una base de datos en tiempo real con Firebase.
  4. En Android Studio, agrega el archivo google-services.json al directorio app de tu proyecto.

Autoriza las llamadas a la API de ARCore

Autorizar las llamadas a la API de ARCore para alojar y resolver Cloud Anchors en tu . Sigue los pasos del artículo Usa la API de ARCore en Google Cloud y usa Keyless autorización para Persistent Cloud Anchors o autorización de clave de API para Cloud Anchors.

Cómo compilar y ejecutar la app de muestra

Cloud Anchors persistentes

Ejecuta la app

  1. Asegúrate de que tu dispositivo tenga habilitadas las opciones para desarrolladores y la depuración por USB.
  2. Conecta el dispositivo a tu máquina de desarrollo por USB.
  3. En Android Studio, selecciona tu dispositivo como destino de la implementación y haz clic en Run.

Se debería iniciar persistent_cloud_anchor_java en tu dispositivo y pedirle a ARCore que detecte los aviones frente a la cámara del dispositivo.

Si la autorización de Google Cloud falla, consulta Pasos para solucionar problemas.

Cómo colocar un ancla

  1. Una vez que la app comience a detectar planos, presiona la pantalla para colocar un ancla en uno de los planos detectados.
  2. Presiona el botón HOST para alojar el ancla colocada. Esto envía una solicitud de host a la API de ARCore, que incluye datos que representan la posición del ancla en relación con las características visuales cercanas.

Una solicitud de host correcta establece un ancla en la ubicación colocada y le asigna un ID de Cloud Anchor. Si la solicitud de host se realiza correctamente, la app debería mostrar un código de habitación. Puedes usar este código para acceder a las anclas alojadas con anterioridad para esta sala desde cualquier dispositivo.

Resuelve un ancla

  1. Presiona RESOLVER y, luego, ingresa el código de habitación que se mostró anteriormente para acceder a las anclas alojadas en esta sala. Esto envía una solicitud de resolución a la API de ARCore, que muestra los IDs de todas las anclas alojadas actualmente en la sala. persistent_cloud_anchor_java usará estos IDs para renderizar objetos 3D adjuntos a las anclas alojadas.

Cloud Anchors

Ejecuta la app

  1. Asegúrate de que tu dispositivo tenga habilitadas las opciones para desarrolladores y la depuración por USB.
  2. Conecta el dispositivo a tu máquina de desarrollo por USB.
  3. En Android Studio, selecciona tu dispositivo como destino de la implementación y haz clic en Run.

Se debería iniciar cloud_anchor_java en tu dispositivo y pedirle a ARCore que detecte los aviones frente a la cámara del dispositivo.

Error: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your getInstance

Si encuentras este error, asegúrate de que la propiedad firebase_url esté presente en google-services.json. Para obtener el valor correcto de esta propiedad, asegúrate de que se haya creado Realtime Database y de que se descargue google-services.json.


Cómo colocar un ancla

  1. Una vez que la app comience a detectar planos, presiona la pantalla para colocar un ancla en uno de los planos detectados.
  2. Presiona el botón HOST para alojar el ancla colocada. Esto envía una solicitud de host a la API de ARCore, que incluye datos que representan la posición del ancla en relación con las características visuales cercanas.

Una solicitud de host correcta establece un ancla en la ubicación colocada y le asigna un ID de Cloud Anchors. Si la solicitud de host se realiza correctamente, la app debería mostrar un código de habitación. Puedes usar este código para acceder a las anclas alojadas con anterioridad para esta sala desde cualquier dispositivo.

Resuelve un ancla

  1. Presiona RESOLVER y, luego, ingresa el código de habitación que se mostró anteriormente para acceder a las anclas alojadas en esta sala. Esto envía una solicitud de resolución a la API de ARCore, que muestra los IDs de todas las anclas alojadas actualmente en la sala. cloud_anchor_java usará estos IDs para renderizar objetos 3D adjuntos a las anclas alojadas.

¿Qué sigue?