Abilita l'API Geospatial per la tua app Android (Kotlin/Java)

Configura le impostazioni della tua app in modo che possa utilizzare l'API Geospatial.

Prerequisiti

Assicurati di comprendere i concetti fondamentali della realtà aumentata e su come configurare una sessione ARCore prima di procedere.

App e codelab di esempio

Questo video illustra i passaggi per creare un'app che mostra dati geospaziali e inserisce contenuti in luoghi reali utilizzando l'API Geospatial.

Puoi anche seguire il codelab geospaziale documentazione per gli stessi passaggi. Per eseguire l'app di esempio creata nel video: consulta la guida rapida di ARCore geospaziale.

Consulta le Introduzione all'API Geospatial per ulteriori informazioni informazioni sull'API Geospatial.

Se non hai familiarità con lo sviluppo di ARCore, consulta la Guida introduttiva. per informazioni su requisiti software e hardware, prerequisiti e e altre informazioni specifiche per le piattaforme utilizzate.

Assicurati che l'ambiente di sviluppo soddisfi i requisiti dell'SDK ARCore, come descritto nella guida introduttiva.

Attiva l'API ARCore

Prima di utilizzare il sistema di posizionamento visivo (VPS) nella tua app, devi prima attivare l'API ARCore in un progetto Google Cloud nuovo o esistente. Questo servizio è responsabile l'hosting, l'archiviazione e la risoluzione degli ancoraggi geospaziali.

L'autorizzazione senza chiave è preferita, ma è supportata anche l'autorizzazione con chiave API.

Aggiungi le librerie richieste alla tua app

Dopo aver autorizzato la tua app a chiamare l'API ARCore, devi aggiungere librerie per attivare le funzionalità geospaziali nella tua app.

Nel file build.gradle dell'app, configura Google Play Services in modo da includere la raccolta Location di Play Services.

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)'
}

Attivare le funzionalità geospaziali nella configurazione della sessione

Prima di creare la sessione, modifica GeospatialMode nella sessione configurazione 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 })

Mentre la modalità Geospaziale è impostata su ENABLED, l'applicazione può ottenere di informazioni geografiche dal Visual Positioning System (VPS).

Chiedi all'utente di consentire l'utilizzo dei dati del dispositivo

Le app che utilizzano l'API ARCore Geospatial devono presentare all'utente una richiesta di conferma e di autorizzazione all'utilizzo dei dati del suo dispositivo. Per ulteriori informazioni, consulta i requisiti relativi alla privacy degli utenti.

Verifica la compatibilità del dispositivo

Non tutti i dispositivi che supportano ARCore supportano anche l'API Geospatial, descritto nella guida rapida.

Per verificare la compatibilità del dispositivo dell'utente, chiama Session.checkGeospatialModeSupported() Se restituisce false, non tentare di configurare la sessione (di seguito), poiché verrà generato un UnsupportedConfigurationException.

Chiedere all'utente le autorizzazioni di accesso alla posizione in fase di esecuzione

L'app deve richiedere le autorizzazioni di accesso alla posizione in fase di runtime.

Per utilizzare l'API ARCore Geospatial, la tua app deve registrare quanto segue autorizzazioni aggiuntive:

  • ACCESS_FINE_LOCATION per determinare con precisione la posizione dell'utente.

  • ACCESS_COARSE_LOCATION per una determinazione non accurata della località dell'utente e per rispettare le requisiti di privacy dell'utente. Tuttavia, l'API Geospatial non può essere configurata per lavorare con la posizione approssimativa e le richieste API non andranno a buon fine se l'utente imposta questa autorizzazione. Per saperne di più, vedi di seguito.

  • ACCESS_INTERNET per contattare il servizio API ARCore Geospatial.

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

Sui dispositivi con Android versione 12 o successive, gli utenti possono richiedere che la tua app abbia accesso solo alle informazioni sulla posizione approssimativa. Per soddisfare questa richiesta, la tua app deve avere ACCESS_COARSE_LOCATION l'autorizzazione di accesso configurata, insieme ACCESS_FINE_LOCATION, come mostrato sopra. Devi configurare entrambe le autorizzazioni di accesso alla posizione.

Tuttavia, quando gli utenti specificano una posizione approssimativa, questo impedisce al set di dati geospaziali di ottenere la posizione esatta richiesta. Il servizio geospaziale non consentirà di essere configurato se la tua app fornisce solo una posizione approssimativa. La tua app non può utilizzare l'API Geospatial con posizione approssimativa.

Verificare la disponibilità geospaziale nella posizione attuale del dispositivo

Poiché l'API Geospatial utilizza una combinazione di VPS e GPS per determinare una posa geospaziale, l'API può essere utilizzata a condizione che il dispositivo sia in grado di determinare la propria posizione. Nelle aree con una scarsa precisione GPS, come gli spazi interni e gli ambienti urbani densi, l'API si baserà sulla copertura VPS per generare pose ad alta precisione. In condizioni normali, ci si aspetta che il servizio VPS fornisca un'accuratezza di posizionamento di circa 5 metri e un'accuratezza di rotazione di 5 gradi. Utilizza Session.checkVpsAvailabilityAsync() per determinare se una determinata località ha copertura VPS.

L'API Geospatial può essere utilizzata anche nelle aree che non hanno copertura VPS. In ambienti esterni con poche o nessuna ostruzione sopraelevata, il GPS potrebbe essere sufficiente per generare una posa con elevata precisione.

Passaggi successivi