Guia de início rápido do Cloud Anchors para Android

Teste a hospedagem e a resolução de Cloud Anchors nos apps de exemplo cloud_anchor_java e persistent_cloud_anchor_java.

Qual app de exemplo você deve usar?

Os Cloud Anchors são âncoras hospedadas no endpoint da nuvem da API ARCore. Essa API permite que os usuários compartilhem experiências no mesmo app. As âncoras permanentes do Cloud são âncoras do Cloud que podem ser hospedadas por mais de 24 horas.

  • persistent_cloud_anchor_java é uma implementação de um caso de uso de projeto colaborativo. Ele usa autorização sem chave para autorizar chamadas de API do ARCore. Como ele não usa um back-end do Firebase para compartilhar IDs do Cloud Anchor entre dispositivos, é muito mais fácil começar a usar.
  • cloud_anchor_java é uma implementação de um caso de uso multiplayer. Ele usa uma chave de API para autorizar chamadas de API do ARCore.

Pré-requisitos

Requisitos

Hardware

Software

  • Android Studio versão 3.0 ou mais recente com a Android SDK Platform versão 7.0 (nível 24 da API) ou mais recente
  • O SDK do ARCore para Android, que você pode obter de duas maneiras:
    • Faça o download pelo GitHub e extraia-o na sua máquina
    • Clone o repositório com o seguinte comando:
      git clone https://github.com/google-ar/arcore-android-sdk.git

Abrir o app de exemplo no Android Studio

O SDK do ARCore fornece os apps de exemplo cloud_anchor_java e persistent_cloud_anchor_java para demonstrar a funcionalidade do Cloud Anchors. Siga estas etapas para abrir os apps no Android Studio.

Âncoras do Cloud permanentes

  1. No Android Studio, clique em Open.

  2. Navegue até o local onde o diretório arcore-android-sdk está armazenado na sua máquina. Não abra toda a pasta do SDK. Em vez disso, acesse amostras > persistent_cloud_anchor_java e clique em Abrir.

Âncoras do Cloud

  1. No Android Studio, clique em Open.

  2. Navegue até o local onde o diretório arcore-android-sdk está armazenado na sua máquina. Não abra toda a pasta do SDK. Em vez disso, acesse amostras > cloud_anchor_java e clique em Abrir.

Configurar o compartilhamento do ID do Cloud Anchor

Os IDs do Cloud Anchor são strings que identificam âncoras do Cloud hospedadas. Eles são usados para resolver ou renderizar os objetos 3D anexados às âncoras hospedadas.

Âncoras do Cloud permanentes

O compartilhamento do ID do Cloud Anchor é mantido localmente no app. Não é necessário fazer nada aqui.

Âncoras do Cloud

O app de exemplo cloud_anchor_java usa os bancos de dados em tempo real do Firebase para compartilhar IDs do Cloud Anchor entre dispositivos. É possível usar uma solução diferente nos seus próprios apps.

  1. Adicione o Firebase manualmente ao seu app.O nome do pacote cloud_anchor_java é com.google.ar.core.examples.java.cloudanchor. Ele está disponível em main/AndroidManifest.xml.
  2. Faça o download do arquivo google-services.json gerado ao adicionar o Firebase ao app.
  3. Criar um Realtime Database com o Firebase.
  4. No Android Studio, adicione o arquivo google-services.json ao diretório app do projeto.

Autorizar chamadas de API do ARCore

Autorize chamadas à API ARCore para hospedar e resolver âncoras do Cloud para seu app. Siga as etapas em Usar a API ARCore no Google Cloud e use a opção Sem chave autorização para Âncoras do Cloud Persistentes ou autorização de chave de API para do Cloud Anchors.

Criar e executar o aplicativo de amostra

Âncoras do Cloud permanentes

Executar o app

  1. Verifique se o dispositivo ativou as opções do desenvolvedor e a depuração USB.
  2. Conecte seu dispositivo via USB à máquina de desenvolvimento.
  3. No Android Studio, selecione seu dispositivo como destino da implantação e clique em Run.

O persistent_cloud_anchor_java será iniciado no dispositivo, solicitando que o ARCore detecte os planos na frente da câmera.

Se a autorização do Google Cloud falhar, consulte as etapas de solução de problemas.

Colocar uma âncora

  1. Quando o app começar a detectar planos, toque na tela para fixar uma âncora em um deles.
  2. Toque no botão HOST para hospedar o âncora posicionado. Isso envia uma solicitação de host para a API ARCore, que inclui dados que representam a posição da âncora em relação aos recursos visuais próximos a ela.

Uma solicitação de host bem-sucedida estabelece uma âncora no local posicionado e atribui a ela um ID do Cloud Anchor. Se a solicitação do host for bem-sucedida, o app vai mostrar um código de ambiente. Você pode usar esse código para acessar âncoras hospedadas anteriormente neste ambiente em qualquer dispositivo.

Resolver uma âncora

  1. Toque em RESOLVER e insira um código da sala retornado anteriormente para acessar os âncoras hospedados nesta sala. Isso envia uma solicitação de resolução para a API ARCore, que retorna os IDs de todas as âncoras atualmente hospedadas na sala. O persistent_cloud_anchor_java usará esses IDs para renderizar objetos 3D anexados às âncoras hospedadas.

Âncoras do Cloud

Executar o app

  1. Verifique se o dispositivo ativou as opções do desenvolvedor e a depuração USB.
  2. Conecte seu dispositivo via USB à máquina de desenvolvimento.
  3. No Android Studio, selecione seu dispositivo como destino da implantação e clique em Run.

O cloud_anchor_java será iniciado no dispositivo, solicitando que o ARCore detecte os planos na frente da câmera.

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

Se você encontrar esse erro, verifique se a propriedade firebase_url está presente em google-services.json. Você pode conseguir o valor correto dessa propriedade garantindo que o Realtime Database tenha sido criado e fazendo o download de google-services.json.


Colocar uma âncora

  1. Quando o app começar a detectar planos, toque na tela para fixar uma âncora em um deles.
  2. Toque no botão HOST para hospedar o âncora posicionado. Isso envia uma solicitação de host para a API ARCore, que inclui dados que representam a posição da âncora em relação aos recursos visuais próximos a ela.

Uma solicitação de host bem-sucedida estabelece uma âncora no local posicionado e atribui a ela um ID do Cloud Anchors. Se a solicitação do host for bem-sucedida, o app vai mostrar um código de ambiente. Você pode usar esse código para acessar âncoras hospedadas anteriormente neste ambiente em qualquer dispositivo.

Resolver uma âncora

  1. Toque em RESOLVER e insira um código da sala retornado anteriormente para acessar os âncoras hospedados nesta sala. Isso envia uma solicitação de resolução para a API ARCore, que retorna os IDs de todas as âncoras atualmente hospedadas na sala. O cloud_anchor_java usará esses IDs para renderizar objetos 3D anexados às âncoras hospedadas.

O que vem em seguida?