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
- Hier erfahren Sie, wie Anker und Cloud-Anker funktionieren.
- Installieren und konfigurieren Sie das ARCore SDK for Android.
Voraussetzungen
Hardware
- Ein Gerät, das ARCore unterstützt, auf dem die neueste Version der Google Play-Dienste für AR installiert ist
- Ein USB-Kabel zum Verbinden des Geräts mit dem Entwicklungscomputer
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
Klicken Sie in Android Studio auf Open (Ö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. Rufe stattdessen Beispiele auf. persistent_cloud_anchor_java und Öffnen.
Cloud-Anker
Klicken Sie in Android Studio auf Open (Ö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. 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.
- Fügen Sie Firebase Ihrer App manuell hinzu. Der Paketname
cloud_anchor_java
lautetcom.google.ar.core.examples.java.cloudanchor
. Du findest es untermain/AndroidManifest.xml
. - Laden Sie die Datei
google-services.json
herunter, die Sie generiert haben, als Sie Ihrer App Firebase hinzugefügt haben. - Erstellen Sie eine Echtzeitdatenbank mit Firebase.
- Fügen Sie in Android Studio die Datei
google-services.json
dem Verzeichnisapp
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
- Achten Sie darauf, dass auf Ihrem 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. 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
- Sobald die App Flugzeuge erkennt, können Sie auf das Display tippen, um eines der erkannten Flugzeuge zu verankern.
- 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
- 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
- Achten Sie darauf, dass auf Ihrem 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. 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
- Sobald die App Flugzeuge erkennt, können Sie auf das Display tippen, um eines der erkannten Flugzeuge zu verankern.
- 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
- 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
- Erstellen Sie mit dem Codelab zu ARCore-Cloud-Anchors mit persistenten Cloud-Anchors eine Cloud-Anchor-Anwendung.
- Im Entwicklerleitfaden für Cloud-Anker erfahren Sie, wie Sie Cloud-Anker in Ihre App einbinden.
- Mit der Cloud Anchors Management API können Sie Cloud-Anchors außerhalb Ihrer ARCore-App verwalten.