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. Dado que no utiliza un backend de Firebase para compartir los IDs de Cloud Anchor entre dispositivos, es mucho más fácil ponerlo en marcha.
  • cloud_anchor_java es una implementación de un caso de uso de 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 una versión posterior
  • El SDK de ARCore para Android, que puedes obtener de una de estas dos maneras:
    • Descárgala de GitHub y extráela en tu máquina.
    • Usa el siguiente comando para clonar el repositorio:
      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 máquina. No abras toda la carpeta del SDK. En su lugar, ve a samples > persistent_cloud_anchor_java y haz clic en Abrir.

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 máquina. No abras toda la carpeta del SDK. En su lugar, ve a samples > cloud_anchor_java y haz clic en Open.

Configura el uso compartido de ID de Cloud Anchor

Los IDs de Cloud Anchor son strings que identifican las Cloud Anchors alojadas. Se utilizan 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 deberás hacer nada aquí.

Cloud Anchors

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

  1. Agrega Firebase a tu app de forma manual. 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 de Realtime Database 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

Autoriza las llamadas a la API de ARCore a fin de alojar y resolver Cloud Anchors para tu app. Sigue los pasos que se indican en Usa la API de ARCore en Google Cloud y usa la autorización sin clave para las Cloud Anchors persistentes o la autorización de claves 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 tu dispositivo a través de USB a tu máquina de desarrollo.
  3. En Android Studio, selecciona tu dispositivo como destino de implementación y haz clic en Run.

Se debería iniciar persistent_cloud_anchor_java en tu dispositivo, lo que le indicará a ARCore que detecte los planos frente a la cámara del dispositivo.

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

Coloca 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 debe mostrar un código de habitación. Puedes usar este código para acceder a las anclas alojadas anteriormente para esta sala en cualquier dispositivo.

Resolver un ancla

  1. Presiona RESOLVER y, luego, ingresa el código de sala 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 los utilizará 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 tu dispositivo a través de USB a tu máquina de desarrollo.
  3. En Android Studio, selecciona tu dispositivo como destino de implementación y haz clic en Run.

Se debería iniciar cloud_anchor_java en tu dispositivo, lo que le indicará a ARCore que detecte los planos 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 descargues google-services.json.


Coloca 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 debe mostrar un código de habitación. Puedes usar este código para acceder a las anclas alojadas anteriormente para esta sala en cualquier dispositivo.

Resolver un ancla

  1. Presiona RESOLVER y, luego, ingresa el código de sala 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 los utilizará para renderizar objetos 3D adjuntos a las anclas alojadas.

¿Qué sigue?