Testen Sie das Hosten und Auflösen von Cloud Anchors in den cloud_anchor_java und persistent_cloud_anchor_java Beispiel-Apps.
Welche Beispiel-App sollten Sie verwenden?
Cloud Anchors sind Anker, die auf dem ARCore API Cloud-Endpunkt gehostet werden. Mit dieser API können Nutzer in derselben App zusammenarbeiten. Persistente Cloud Anchors sind Cloud Anchors, die länger als 24 Stunden gehostet werden können.
persistent_cloud_anchor_javaist eine Implementierung eines Anwendungsfalls für ein gemeinsames Projekt. Für die Autorisierung von ARCore API-Aufrufen wird die schlüssellose Autorisierung verwendet. Da kein Firebase-Backend verwendet wird, um Cloud Anchor-IDs zwischen Geräten auszutauschen, ist die Einrichtung viel einfacher.cloud_anchor_javaist eine Implementierung eines Anwendungsfalls für mehrere Spieler. Für die Autorisierung von ARCore API-Aufrufen wird ein API-Schlüssel verwendet.
Vorbereitung
- Sie müssen wissen, wie Anker und Cloud Anchors funktionieren.
- Installieren und konfigurieren Sie das ARCore SDK for Android.
Voraussetzungen
Hardware
- Ein ARCore-unterstütztes Gerät mit der neuesten Version der Google Play-Dienste für AR
- Ein USB-Kabel, um das Gerät mit Ihrer Entwicklungsmaschine zu verbinden
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 for Android, das Sie auf zwei Arten erhalten können:
- Laden Sie es von GitHub herunter und extrahieren Sie es 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 Cloud Anchors-Funktionalität zu demonstrieren. Führen Sie die folgenden Schritte aus, um die Apps in Android Studio zu öffnen.
Persistente Cloud Anchors
Klicken Sie in Android Studio auf Open (Öffnen).
Rufen Sie den Speicherort des Verzeichnisses arcore-android-sdk auf Ihrem Computer auf. Öffnen Sie nicht den gesamten SDK-Ordner. Gehen Sie stattdessen zu samples > persistent_cloud_anchor_java und klicken Sie auf Open (Öffnen).
Cloud Anchors
Klicken Sie in Android Studio auf Open (Öffnen).
Rufen Sie den Speicherort des Verzeichnisses arcore-android-sdk auf Ihrem Computer auf. Öffnen Sie nicht den gesamten SDK-Ordner. Gehen Sie stattdessen zu samples > cloud_anchor_java und klicken Sie auf Open (Öffnen).
Freigabe von Cloud Anchor-IDs einrichten
Cloud Anchor-IDs sind Strings, die gehostete Cloud Anchors identifizieren. Sie werden verwendet, um die 3D-Objekte aufzulösen oder zu rendern, die an die gehosteten Anker angehängt sind.
Persistente Cloud Anchors
Die Freigabe von Cloud Anchor-IDs wird lokal in der App verwaltet. Sie müssen nichts unternehmen.
Cloud Anchors
Die Beispiel-App cloud_anchor_java verwendet die Realtime Databases von Firebase, um Cloud Anchor-IDs zwischen Geräten auszutauschen. In Ihren eigenen Apps können Sie eine andere Lösung verwenden.
- Fügen Sie Ihrer App manuell Firebase hinzu. Der
cloud_anchor_javaPaketname istcom.google.ar.core.examples.java.cloudanchor. Sie finden ihn inmain/AndroidManifest.xml. - Laden Sie die Datei
google-services.jsonherunter, die Sie beim Hinzufügen von Firebase zu Ihrer App generiert haben. - Erstellen Sie mit Firebase eine Realtime Database.
- Fügen Sie in Android Studio die Datei
google-services.jsondem VerzeichnisappIhres Projekts hinzu.
ARCore API-Aufrufe autorisieren
Autorisieren Sie Aufrufe der ARCore API, um Cloud Anchors für Ihre App zu hosten und aufzulösen. Folgen Sie der Anleitung unter ARCore API in Google Cloud verwenden und verwenden Sie die schlüssellose Autorisierung für persistente Cloud Anchors oder die API-Schlüssel-Autorisierung für Cloud Anchors.
Beispiel-App erstellen und ausführen
Persistente Cloud Anchors
Anwendung ausführen
- Achten Sie darauf, dass auf Ihrem Gerät die Entwickleroptionen und das USB-Debugging aktiviert sind.
- Verbinden Sie Ihr Gerät über USB mit Ihrer Entwicklungsmaschine.
- Wählen Sie in Android Studio Ihr Gerät als Bereitstellungsziel aus und klicken Sie auf Run (Ausführen).
persistent_cloud_anchor_java sollte auf Ihrem Gerät gestartet werden und ARCore auffordern, die Ebenen vor der Kamera des Geräts zu erkennen.
Wenn die Google Cloud-Autorisierung fehlschlägt, finden Sie unter Schritte zur Fehlerbehebung weitere Informationen.
Anker setzen
- Sobald die App mit der Erkennung von Ebenen beginnt, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
- Tippen Sie auf die Schaltfläche HOST (Hosten), um den platzierten Anker zu hosten. Dadurch wird eine Hostanfrage an die ARCore API gesendet, die Daten enthält, die die Position des Ankers relativ zu den visuellen Merkmalen in der Nähe darstellen.
Bei einer erfolgreichen Hostanfrage wird ein Anker am platzierten Ort erstellt und ihm eine Cloud Anchor-ID zugewiesen. Wenn die Hostanfrage erfolgreich ist, sollte in der App ein Raumcode angezeigt werden. Mit diesem Code können Sie auf jedem Gerät auf zuvor gehostete Anker für diesen Raum zugreifen.
Anker auflösen
- Tippen Sie auf RESOLVE (Auflösen) und geben Sie einen zuvor zurückgegebenen Raumcode ein, um auf die in diesem Raum gehosteten Anker zuzugreifen. Dadurch wird eine Auflösungsanfrage an die ARCore API gesendet, die die IDs aller Anker zurückgibt, die derzeit im Raum gehostet werden.
persistent_cloud_anchor_javaverwendet diese IDs, um 3D-Objekte zu rendern, die an die gehosteten Anker angehängt sind.
Cloud Anchors
Anwendung ausführen
- Achten Sie darauf, dass auf Ihrem Gerät die Entwickleroptionen und das USB-Debugging aktiviert sind.
- Verbinden Sie Ihr Gerät über USB mit Ihrer Entwicklungsmaschine.
- Wählen Sie in Android Studio Ihr Gerät als Bereitstellungsziel aus und klicken Sie auf Run (Ausführen).
cloud_anchor_java sollte auf Ihrem Gerät gestartet werden und ARCore auffordern, die Ebenen 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 die Eigenschaft firebase_url in google-services.json vorhanden ist. Den richtigen Wert für diese Eigenschaft erhalten Sie, indem Sie die Realtime Database erstellen und google-services.json herunterladen.
Anker setzen
- Sobald die App mit der Erkennung von Ebenen beginnt, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
- Tippen Sie auf die Schaltfläche HOST (Hosten), um den platzierten Anker zu hosten. Dadurch wird eine Hostanfrage an die ARCore API gesendet, die Daten enthält, die die Position des Ankers relativ zu den visuellen Merkmalen in der Nähe darstellen.
Bei einer erfolgreichen Hostanfrage wird ein Anker am platzierten Ort erstellt und ihm eine Cloud Anchors-ID zugewiesen. Wenn die Hostanfrage erfolgreich ist, sollte in der App ein Raumcode angezeigt werden. Mit diesem Code können Sie auf jedem Gerät auf zuvor gehostete Anker für diesen Raum zugreifen.
Anker auflösen
- Tippen Sie auf RESOLVE (Auflösen) und geben Sie einen zuvor zurückgegebenen Raumcode ein, um auf die in diesem Raum gehosteten Anker zuzugreifen. Dadurch wird eine Auflösungsanfrage an die ARCore API gesendet, die die IDs aller Anker zurückgibt, die derzeit im Raum gehostet werden.
cloud_anchor_javaverwendet diese IDs, um 3D-Objekte zu rendern, die an die gehosteten Anker angehängt sind.
Weiteres Vorgehen
- Erstellen Sie mit dem Codelab ARCore Cloud Anchors mit persistenten Cloud Anchors eine Cloud Anchors-App.
- Im Entwicklerleitfaden zu Cloud Anchors erfahren Sie, wie Sie Cloud Anchors in Ihre App einbinden.
- Verwalten Sie Cloud Anchors außerhalb Ihrer ARCore-App mit der Cloud Anchors Management API.