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

Konfigurieren Sie die Einstellungen Ihrer 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 wird gezeigt, wie Sie eine App erstellen, die raumbezogene Daten anzeigt und Inhalte mithilfe der Geospatial API an realen Orten platziert.

Dieselben Schritte finden Sie auch in der Dokumentation zum Geospatial Codelab. Informationen zum Ausführen der im Video erstellten Beispiel-App finden Sie in der ARCore Geospatial-Kurzanleitung.

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

Wenn Sie noch keine Erfahrung mit der Entwicklung mit ARCore haben, finden Sie unter Erste Schritte Informationen zu Software- und Hardwareanforderungen, Voraussetzungen und anderen Informationen, die speziell auf die von Ihnen verwendeten Plattformen bezogen sind.

Ihre Entwicklungsumgebung muss die im Schnellstart beschriebenen ARCore SDK-Anforderungen erfüllen.

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 wird unterstützt.

Der App erforderliche Bibliotheken hinzufügen

Nachdem Sie Ihre App zum Aufrufen der ARCore API autorisiert haben, müssen Sie Bibliotheken hinzufügen, um geografische Funktionen in Ihrer App zu 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)'
}

Geospatial-Funktionen in der Sitzungskonfiguration aktivieren

Ändern Sie vor dem Erstellen der Sitzung das GeospatialMode in Ihrer Sitzungskonfiguration in 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() Wenn dies „falsch“ zurückgibt, versuchen Sie nicht, die Sitzung unten zu konfigurieren, da sonst ein Fehler UnsupportedConfigurationException auftritt.

Nutzer zur Laufzeit um Berechtigungen zur Standortermittlung bitten

Ihre App muss Berechtigungen zur Standortermittlung zur Laufzeit anfordern.

Wenn Sie die ARCore Geospatial API verwenden möchten, müssen Sie für Ihre App die folgenden zusätzlichen Berechtigungen registrieren:

  • 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 12 oder höher können Nutzer anfordern, dass Ihre App nur auf ungefähre Standortinformationen zugreifen darf. Damit diese Anfrage verarbeitet werden kann, muss Ihre App die Berechtigung ACCESS_COARSE_LOCATION sowie ACCESS_FINE_LOCATION haben, wie oben gezeigt. Sie müssen beide Berechtigungen für die Standortermittlung konfigurieren.

Wenn Nutzer jedoch einen groben Standort angeben, kann die Geospatial API den erforderlichen genauen Standort nicht ermitteln. 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.

Geospatiale Verfügbarkeit am aktuellen Standort des Geräts prüfen

Da die Geospatial API eine räumlich-geografische Position mithilfe einer Kombination aus VPS und GPS ermittelt, 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 in dicht bebauten städtischen Gebieten, nutzt die API die VPS-Abdeckung, um möglichst genaue Posen 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 feststellen, ob ein bestimmter Standort eine VPS-Abdeckung hat.

Die Geospatial API kann auch in Gebieten verwendet werden, die nicht von VPS abgedeckt sind. In Umgebungen im Freien mit wenig oder gar keinen Hindernissen kann GPS ausreichen, um eine Pose mit hoher Genauigkeit zu generieren.

Nächste Schritte