Geospatial API für Android-Apps aktivieren (Kotlin/Java)

Konfigurieren Sie die Einstellungen der App so, dass sie die Geospatial API verwenden kann.

Vorbereitung

Machen Sie sich mit den grundlegenden AR-Konzepten vertraut. und Konfigurieren einer ARCore-Sitzung beschrieben, bevor du fortfährst.

Beispiel-App und Codelab

In diesem Video erfahren Sie, wie Sie eine App erstellen, die raumbezogene Daten und platzieren Inhalte mithilfe der Geospatial API an realen Orten.

Sie können auch dem Codelab für raumbezogene Geodaten folgen. Dokumentation zu denselben Schritten. Um die im Video erstellte Beispiel-App auszuführen, Kurzanleitung zu ARCore Geospatial

Weitere Informationen finden Sie in der Einführung in die Geospatial API zur Geospatial API.

Wenn Sie noch nicht mit ARCore vertraut sind, lesen Sie den Artikel Erste Schritte. finden Sie Informationen zu Software- und Hardwareanforderungen, Voraussetzungen und weitere Informationen speziell für die von Ihnen genutzten Plattformen.

Achte darauf, dass deine Entwicklungsumgebung die ARCore SDK-Anforderungen erfüllt, z. B. Kurzanleitung beschrieben.

ARCore API aktivieren

Bevor Sie das Visual Positioning System (VPS) in Ihrer App verwenden können, müssen Sie die ARCore API zu aktivieren in einem neuen oder vorhandenen Google Cloud-Projekt. Dieser Dienst ist für Geospatial-Anker zu hosten, zu speichern und aufzulösen.

Die schlüssellose Autorisierung wird bevorzugt, aber auch die Autorisierung per API-Schlüssel unterstützt.

Der App erforderliche Bibliotheken hinzufügen

Nachdem du deine App zum Aufrufen der ARCore API autorisiert hast, musst du Bibliotheken hinzufügen zu: Geodaten-Funktionen in Ihrer App aktivieren

Richten Sie in der Datei build.gradle Ihrer App die Google Play-Dienste ein, um den Play Store einzubinden. Dienststandortbibliothek.

dependencies {
  // Apps must declare play-services-location version >= 16.
  // In the following line, substitute `16 (or later)` with the latest version.
  implementation 'com.google.android.gms:play-services-location:16 (or later)'
}

Raumbezogene Funktionen in der Sitzungskonfiguration aktivieren

Ändern Sie vor dem Erstellen der Sitzung den GeospatialMode in Ihrer Sitzung Konfiguration für ENABLED:

Java

Config config = session.getConfig();
config.setGeospatialMode(Config.GeospatialMode.ENABLED);
session.configure(config);

Kotlin

// Enable the Geospatial API.
session.configure(session.config.apply { geospatialMode = Config.GeospatialMode.ENABLED })

Wenn der raumbezogene Modus auf ENABLED gesetzt ist, darf die Anwendung Daten abrufen geografische Daten aus dem Visual Positioning System (VPS) verwendet.

Nutzer auffordern, die Nutzung von Gerätedaten zuzulassen

Bei Apps, die die ARCore Geospatial API verwenden, muss der Nutzer aufgefordert werden, die Nutzung von Daten auf ihrem Gerät bestätigen und zulassen. Weitere Informationen finden Sie unter Anforderungen an den Datenschutz für weitere Informationen Informationen.

Gerätekompatibilität prüfen

Nicht alle Geräte, die ARCore unterstützen, unterstützen auch die Geospatial API. Kurzanleitung beschrieben.

Um das Gerät des Nutzers auf Kompatibilität zu prüfen, rufe folgenden Befehl auf: Session.checkGeospatialModeSupported() Wird „false“ zurückgegeben, versuchen Sie nicht, die Sitzung zu konfigurieren (siehe unten), wie wird also eine UnsupportedConfigurationException

Nutzer zur Laufzeit um Berechtigungen zur Standortermittlung bitten

Ihre App muss zur Laufzeit Berechtigungen zur Standortermittlung anfordern.

Damit du die ARCore Geospatial API verwenden kannst, musst du für deine App Folgendes registrieren: zusätzliche Berechtigungen:

  • ACCESS_FINE_LOCATION um den Standort des Nutzers genau zu bestimmen.

  • ACCESS_COARSE_LOCATION zur ungenauen Bestimmung des Standorts des Nutzers und zur Einhaltung der Anforderungen an den Datenschutz. Die Geospatial API kann jedoch nicht konfiguriert werden. mit dem ungefähren Standort arbeiten. API-Anfragen schlagen fehl, diese Berechtigung festlegen. Weitere Informationen hierzu finden Sie unten.

  • ACCESS_INTERNET , um den ARCore Geospatial API-Dienst zu kontaktieren.

<manifest ... >
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.INTERNET" />
</manifest>

Auf Geräten mit Android-Version 12 oder höher: können Nutzer auf die Ihre App nur Zugriff hat, ungefähren Standort Informationen. Um dieser Anfrage nachzukommen, muss deine App die ACCESS_COARSE_LOCATION konfigurierte Berechtigung und ACCESS_FINE_LOCATION, wie oben dargestellt. Du musst konfigurieren Sie beide Berechtigungen zur Standortermittlung.

Wenn Nutzer jedoch den ungefähren Standort angeben, wird dadurch verhindert, dass die API durch Abrufen des genauen Standorts, der erforderlich ist. Der Geospatial-Dienst wird kann sich nicht selbst konfigurieren, wenn Ihre App nur eine ungefähre Position angibt. Deine App kann die Geospatial API nicht mit dem ungefähren Standort verwenden.

Verfügbarkeit von raumbezogenen Daten am aktuellen Standort des Geräts prüfen

Da die Geospatial API eine Kombination aus VPS und GPS verwendet, um eine Geospatial-Pose zu bestimmen, kann die API verwendet werden, solange das Gerät seinen Standort ermitteln kann. In Gebieten mit geringer GPS-Genauigkeit, z. B. in Innenräumen und dichten städtischen Umgebungen, ist die API auf die VPS-Abdeckung angewiesen, um Posen mit hoher Genauigkeit zu generieren. Unter typischen Bedingungen ist mit VPS eine Positionsgenauigkeit von etwa 5 Metern und eine Rotationsgenauigkeit von 5 Grad zu erwarten. Mit Session.checkVpsAvailabilityAsync() können Sie ermitteln, ob ein bestimmter Standort eine VPS-Abdeckung hat.

Die Geospatial API kann auch in Gebieten eingesetzt werden, die keine VPS-Abdeckung haben. In Umgebungen mit wenig oder gar keinen Hindernissen im Freien kann GPS ausreichen, um eine Pose mit hoher Genauigkeit zu generieren.

Nächste Schritte