Cloud Anchors-Kurzanleitung für Android

Testen und lösen Sie Cloud Anchors in den Beispiel-Apps cloud_anchor_java und persistent_cloud_anchor_java.

Welche Beispiel-App sollten Sie verwenden?

Cloud-Anchors sind Anker, die auf dem Cloud-Endpunkt ARCore API gehostet werden. Mit dieser API können Nutzer Erfahrungen in derselben App teilen. Persistente Cloud-Anker sind Cloud-Anker, die länger als 24 Stunden gehostet werden können.

  • persistent_cloud_anchor_java ist eine Implementierung eines Anwendungsfalls für ein gemeinsames Projekt. Zur Autorisierung von ARCore API-Aufrufen wird die schlüssellose Autorisierung verwendet. Da für die gemeinsame Nutzung von Cloud Anchor-IDs für verschiedene Geräte kein Firebase-Back-End verwendet wird, ist der Einstieg viel einfacher.
  • cloud_anchor_java ist eine Implementierung eines Multiplayer-Anwendungsfalls. ARCore API-Aufrufe werden mithilfe eines API-Schlüssels autorisiert.

Voraussetzungen

Voraussetzungen

Hardware

Software

  • Android Studio Version 3.0 oder höher mit Android SDK Platform Version 7.0 (API-Level 24) oder höher
  • Das ARCore SDK für Android, das Sie auf zwei Arten herunterladen können:
    • Laden Sie sie von GitHub herunter und extrahieren Sie sie auf Ihrem Computer.
    • Klonen Sie das Repository mit dem folgenden Befehl:
      git clone https://github.com/google-ar/arcore-android-sdk.git

Beispiel-App in Android Studio öffnen

Das ARCore SDK enthält die Beispiel-Apps cloud_anchor_java und persistent_cloud_anchor_java, um die Funktionalität von Cloud Anchors zu demonstrieren. So öffnen Sie die Apps in Android Studio:

Persistente Cloud-Anker

  1. Klicken Sie in Android Studio auf Öffnen.

  2. Gehen Sie zu dem Speicherort, an dem das Verzeichnis arcore-android-sdk auf Ihrem Computer gespeichert ist. Öffnen Sie nicht den gesamten SDK-Ordner. Gehen Sie stattdessen zu Beispiele > persistent_cloud_anchor_java und klicken Sie auf Öffnen.

Cloud-Anker

  1. Klicken Sie in Android Studio auf Öffnen.

  2. Gehen Sie zu dem Speicherort, an dem das Verzeichnis arcore-android-sdk auf Ihrem Computer gespeichert ist. Öffnen Sie nicht den gesamten SDK-Ordner. Gehen Sie stattdessen zu Beispiele > cloud_anchor_java und klicken Sie auf Öffnen.

Freigabe von Cloud-Anchor-IDs einrichten

Cloud-Anchor-IDs sind Strings, die gehostete Cloud-Anchors identifizieren. Sie werden verwendet, um die an die gehosteten Anker angehängten 3D-Objekte aufzulösen oder zu rendern.

Persistente Cloud-Anker

Die Freigabe der Cloud-Anchor-ID wird lokal in der App verwaltet. Sie müssen hier nichts tun.

Cloud-Anker

Die Beispiel-App cloud_anchor_java verwendet Echtzeitdatenbanken von Firebase, um Cloud Anchor-IDs für verschiedene Geräte freizugeben. Sie können in Ihren Apps eine andere Lösung verwenden.

  1. Fügen Sie Firebase Ihrer App manuell hinzu. Der Paketname cloud_anchor_java lautet com.google.ar.core.examples.java.cloudanchor. Sie finden es unter main/AndroidManifest.xml.
  2. Laden Sie die Datei google-services.json herunter, die Sie beim Hinzufügen von Firebase zu Ihrer App generiert haben.
  3. Eine Echtzeitdatenbank mit Firebase erstellen
  4. Füge in Android Studio die Datei google-services.json dem Verzeichnis app deines Projekts hinzu.

ARCore API-Aufrufe autorisieren

Autorisieren Sie Aufrufe der ARCore API zum Hosten und Auflösen von Cloud Anchors für Ihre App. Folgen Sie der Anleitung unter ARCore API in Google Cloud verwenden und verwenden Sie die schlüssellose Autorisierung für Persistent Cloud Anchors oder die API-Schlüsselautorisierung für Cloud Anchors.

Beispielanwendung erstellen und ausführen

Persistente Cloud-Anker

Anwendung ausführen

  1. Prüfe, ob auf deinem Gerät Entwickleroptionen und USB-Debugging aktiviert sind.
  2. Verbinden Sie Ihr Gerät über USB mit Ihrem Entwicklungscomputer.
  3. Wählen Sie in Android Studio Ihr Gerät als Bereitstellungsziel aus und klicken Sie auf Ausführen.

persistent_cloud_anchor_java sollte auf deinem Gerät gestartet werden und ARCore wird aufgefordert, die Flugzeuge vor der Kamera des Geräts zu erkennen.

Wenn die Google Cloud-Autorisierung fehlschlägt, lesen Sie die Schritte zur Fehlerbehebung.

Anker platzieren

  1. Sobald die App beginnt, Ebenen zu erkennen, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
  2. Tippen Sie auf die Schaltfläche HOST, um den platzierten Anker zu hosten. Dadurch wird eine Hostanfrage an die ARCore API gesendet, die Daten enthält, die die Position des Ankers im Verhältnis zu den visuellen Elementen in der Nähe darstellen.

Bei einer erfolgreichen Hostanfrage wird am platzierten Standort ein Anker erstellt und ihm eine Cloud-Anker-ID zugewiesen. Wenn die Anfrage des Organisators erfolgreich war, sollte in der App ein Zimmercode angezeigt werden. Mit diesem Code kannst du auf jedem Gerät auf zuvor gehostete Anker für diesen Raum zugreifen.

Anker auflösen

  1. Tippe auf LÖSEN und gib einen zuvor zurückgegebenen Raumcode ein, um auf die Anker in diesem Raum zuzugreifen. Dadurch wird eine Auflösungsanfrage an die ARCore API gesendet, die die IDs aller derzeit im Raum gehosteten Anker zurückgibt. persistent_cloud_anchor_java verwendet diese IDs zum Rendern von 3D-Objekten, die an die gehosteten Anker angehängt sind.

Cloud-Anker

Anwendung ausführen

  1. Prüfe, ob auf deinem Gerät Entwickleroptionen und USB-Debugging aktiviert sind.
  2. Verbinden Sie Ihr Gerät über USB mit Ihrem Entwicklungscomputer.
  3. Wählen Sie in Android Studio Ihr Gerät als Bereitstellungsziel aus und klicken Sie auf Ausführen.

cloud_anchor_java sollte auf deinem Gerät gestartet werden und ARCore wird aufgefordert, die Flugzeuge vor der Kamera des Geräts zu erkennen.

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

Wenn dieser Fehler auftritt, prüfen Sie, ob das Attribut firebase_url in google-services.json vorhanden ist. Den richtigen Wert für diese Property erhalten Sie, wenn Sie die Realtime Database erstellen und google-services.json herunterladen.


Anker platzieren

  1. Sobald die App beginnt, Ebenen zu erkennen, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
  2. Tippen Sie auf die Schaltfläche HOST, um den platzierten Anker zu hosten. Dadurch wird eine Hostanfrage an die ARCore API gesendet, die Daten enthält, die die Position des Ankers im Verhältnis zu den visuellen Elementen in der Nähe darstellen.

Bei einer erfolgreichen Hostanfrage wird am platzierten Standort ein Anker erstellt und ihm eine Cloud-Anker-ID zugewiesen. Wenn die Anfrage des Organisators erfolgreich war, sollte in der App ein Zimmercode angezeigt werden. Mit diesem Code kannst du auf jedem Gerät auf zuvor gehostete Anker für diesen Raum zugreifen.

Anker auflösen

  1. Tippe auf LÖSEN und gib einen zuvor zurückgegebenen Raumcode ein, um auf die Anker in diesem Raum zuzugreifen. Dadurch wird eine Auflösungsanfrage an die ARCore API gesendet, die die IDs aller derzeit im Raum gehosteten Anker zurückgibt. cloud_anchor_java verwendet diese IDs zum Rendern von 3D-Objekten, die an die gehosteten Anker angehängt sind.

Weiteres Vorgehen