Cloud Anchors-Kurzanleitung für Android

Testen Sie, wie Sie Cloud-Anker in den Beispiel-Apps cloud_anchor_java und persistent_cloud_anchor_java hosten und auflösen.

Welche Beispiel-App sollten Sie verwenden?

Cloud-Anker sind Anker, die auf dem Cloud-Endpunkt der 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. ARCore API-Aufrufe werden über die schlüssellose Autorisierung autorisiert. Da für die Freigabe von Cloud-Anchor-IDs zwischen Geräten kein Firebase-Back-End verwendet wird, ist der Einstieg viel einfacher.
  • cloud_anchor_java ist eine Implementierung eines Multiplayer-Anwendungsfalls. Dabei wird ein API-Schlüssel verwendet, um ARCore API-Aufrufe zu autorisieren.

Vorbereitung

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: <ph type="x-smartling-placeholder">
      </ph>
    • Laden Sie es von GitHub herunter und extrahieren Sie es auf Ihren 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 bietet 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-Anchors

  1. Klicken Sie in Android Studio auf Open (Ö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. Rufe stattdessen Beispiele auf. persistent_cloud_anchor_java und Öffnen.

Cloud-Anker

  1. Klicken Sie in Android Studio auf Open (Ö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. Rufe stattdessen Beispiele auf. cloud_anchor_java und klicken Sie auf Öffnen.

Freigabe der Cloud-Anchor-ID einrichten

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

Persistente Cloud-Anchors

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

Cloud-Anker

Die Beispiel-App cloud_anchor_java verwendet Realtime-Datenbanken von Firebase, um Cloud-Anchor-IDs zwischen Geräten freizugeben. Sie können in Ihren eigenen 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. Du findest es unter main/AndroidManifest.xml.
  2. Laden Sie die Datei google-services.json herunter, die Sie generiert haben, als Sie Ihrer App Firebase hinzugefügt haben.
  3. Erstellen Sie eine Echtzeitdatenbank mit Firebase.
  4. Fügen Sie in Android Studio die Datei google-services.json dem Verzeichnis app Ihres Projekts hinzu.

ARCore API-Aufrufe autorisieren

Autorisieren Sie Aufrufe der ARCore API zum Hosten und Auflösen von Cloud-Anchors für Ihr Folge der Anleitung unter ARCore API auf Google verwenden Cloud und verwenden Sie schlüssellose Autorisierung für persistente Cloud-Anchors oder API-Schlüsselautorisierung für Cloud-Anker.

Beispielanwendung erstellen und ausführen

Persistente Cloud-Anchors

Anwendung ausführen

  1. Achten Sie darauf, dass auf Ihrem 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. Dadurch wird ARCore 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 Flugzeuge erkennt, können Sie auf das Display tippen, um eines der erkannten Flugzeuge zu verankern.
  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 ein Anker am platzierten Standort eingerichtet und ihm eine Cloud-Anchor-ID zugewiesen. Wenn die Anfrage durch den Organisator 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. Tippen Sie auf BEHEBEN und geben Sie einen zuvor zurückgegebenen Raumcode ein, um auf die in diesem Chatroom gehosteten Anker zuzugreifen. Dadurch wird eine Resolve-Anfrage an die ARCore API gesendet, die die IDs aller aktuell im Raum gehosteten Anchors zurückgibt. persistent_cloud_anchor_java verwendet diese IDs, um 3D-Objekte zu rendern, die an die gehosteten Anker angehängt sind.

Cloud-Anker

Anwendung ausführen

  1. Achten Sie darauf, dass auf Ihrem 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. Dadurch wird ARCore 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. Sie können den richtigen Wert für diese Property ermitteln, indem Sie die Realtime Database erstellen und google-services.json herunterladen.


Anker platzieren

  1. Sobald die App Flugzeuge erkennt, können Sie auf das Display tippen, um eines der erkannten Flugzeuge zu verankern.
  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.

Eine erfolgreiche Hostanfrage richtet einen Anker am platzierten Standort ein und weist ihm eine Cloud-Anchor-ID zu. Wenn die Anfrage durch den Organisator 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. Tippen Sie auf BEHEBEN und geben Sie einen zuvor zurückgegebenen Raumcode ein, um auf die in diesem Chatroom gehosteten Anker zuzugreifen. Dadurch wird eine Resolve-Anfrage an die ARCore API gesendet, die die IDs aller aktuell im Raum gehosteten Anchors zurückgibt. cloud_anchor_java verwendet diese IDs, um 3D-Objekte zu rendern, die an die gehosteten Anker angehängt sind.

Weiteres Vorgehen