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
- Funktionsweise von Ankern und Cloud-Ankern
- Installieren und konfigurieren Sie das ARCore SDK for Android.
Voraussetzungen
Hardware
- Ein von ARCore unterstütztes Gerät, auf dem die neueste Version der Google Play-Dienste für AR installiert ist
- Ein USB-Kabel, um das Gerät mit Ihrem Entwicklungscomputer 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 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
Klicken Sie in Android Studio auf Öffnen.
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
Klicken Sie in Android Studio auf Öffnen.
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.
- Fügen Sie Firebase Ihrer App manuell hinzu. Der Paketname
cloud_anchor_java
lautetcom.google.ar.core.examples.java.cloudanchor
. Sie finden es untermain/AndroidManifest.xml
. - Laden Sie die Datei
google-services.json
herunter, die Sie beim Hinzufügen von Firebase zu Ihrer App generiert haben. - Eine Echtzeitdatenbank mit Firebase erstellen
- Füge in Android Studio die Datei
google-services.json
dem Verzeichnisapp
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
- Prüfe, ob auf deinem Gerät Entwickleroptionen und USB-Debugging aktiviert sind.
- Verbinden Sie Ihr Gerät über USB mit Ihrem Entwicklungscomputer.
- 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
- Sobald die App beginnt, Ebenen zu erkennen, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
- 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
- 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
- Prüfe, ob auf deinem Gerät Entwickleroptionen und USB-Debugging aktiviert sind.
- Verbinden Sie Ihr Gerät über USB mit Ihrem Entwicklungscomputer.
- 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
- Sobald die App beginnt, Ebenen zu erkennen, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
- 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
- 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
- Erstellen Sie eine Cloud Anchors App mit dem ARCore-Codelab zu Cloud Anchors mit persistentem Cloud Anchors.
- Im Entwicklerleitfaden für Cloud Anchors erfahren Sie, wie Sie Cloud Anchors in Ihre App einbinden.
- Mit der Cloud Anchors Management API kannst du Cloud Anchors außerhalb deiner ARCore-App verwalten.