Cloud Anchors-Kurzanleitung für Android

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_java ist 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_java ist eine Implementierung eines Anwendungsfalls für mehrere Spieler. Für die Autorisierung von ARCore API-Aufrufen wird ein API-Schlüssel verwendet.

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 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

  1. Klicken Sie in Android Studio auf Open (Öffnen).

  2. 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

  1. Klicken Sie in Android Studio auf Open (Öffnen).

  2. 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.

  1. Fügen Sie Ihrer App manuell Firebase hinzu. Der cloud_anchor_java Paketname ist com.google.ar.core.examples.java.cloudanchor. Sie finden ihn in 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. Erstellen Sie mit Firebase eine Realtime Database.
  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, 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

  1. Achten Sie darauf, dass auf Ihrem Gerät die Entwickleroptionen und das USB-Debugging aktiviert sind.
  2. Verbinden Sie Ihr Gerät über USB mit Ihrer Entwicklungsmaschine.
  3. 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

  1. Sobald die App mit der Erkennung von Ebenen beginnt, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
  2. 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

  1. 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_java verwendet diese IDs, um 3D-Objekte zu rendern, die an die gehosteten Anker angehängt sind.

Cloud Anchors

Anwendung ausführen

  1. Achten Sie darauf, dass auf Ihrem Gerät die Entwickleroptionen und das USB-Debugging aktiviert sind.
  2. Verbinden Sie Ihr Gerät über USB mit Ihrer Entwicklungsmaschine.
  3. 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

  1. Sobald die App mit der Erkennung von Ebenen beginnt, tippen Sie auf den Bildschirm, um einen Anker auf einer der erkannten Ebenen zu platzieren.
  2. 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

  1. 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_java verwendet diese IDs, um 3D-Objekte zu rendern, die an die gehosteten Anker angehängt sind.

Weiteres Vorgehen