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.
Se vuoi eseguire un'app di esempio che dimostri la funzionalità descritta vedi le Guida rapida di ARCore geospaziale per Android per Java. L'app di esempio nella Guida rapida è scritta in Java. Gli esempi di codice di questo documento si riferiscono alle stesse funzionalità scritte in C.
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 il tuo ambiente di sviluppo soddisfi i requisiti dell'SDK ARCore, descritta nella Guida rapida per Java.
Abilita l'API ARCore
Prima di utilizzare il sistema di posizionamento visivo (VPS) nella tua app, devi Abilitare l'API ARCore in un progetto Google Cloud nuovo o esistente. Questo servizio è responsabile l'hosting, l'archiviazione e la risoluzione degli ancoraggi geospaziali.
È preferibile l'autorizzazione senza chiave, ma è supportata anche l'autorizzazione delle chiavi API.
Aggiungi le librerie richieste alla tua app
Dopo aver autorizzato l'app a chiamare l'API ARCore, devi aggiungere librerie a attivare le funzionalità geospaziali nella tua app.
Nel file build.gradle
dell'app, configura Google Play Services in modo da includere l'app Play
Libreria delle località dei servizi.
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)'
}
Attiva le funzionalità geospaziali nella configurazione della sessione
Prima di creare la sessione, modifica GeospatialMode
nella sessione
configurazione in ENABLED
:
// Create a session config. ArConfig* ar_config = NULL; ArConfig_create(ar_session, &ar_config); // Enable the Geospatial API. ArConfig_setGeospatialMode(ar_session, ar_config, AR_GEOSPATIAL_MODE_ENABLED); CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS); // Release config resources. ArConfig_destroy(ar_config);
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 riconoscono e consentono l'utilizzo dei dati provenienti dal loro dispositivo. Consulta Requisiti di privacy dell'utente per ulteriori informazioni. informazioni.
Verifica la compatibilità del dispositivo
Non tutti i dispositivi che supportano ARCore supportano anche l'API Geospatial, descritta nella guida rapida. per Java.
Per verificare la compatibilità del dispositivo dell'utente, chiama
ArSession_isGeospatialModeSupported()
Se restituisce false, non tentare di configurare la sessione (di seguito), poiché
quindi ArStatus
segnalerà un
AR_ERROR_UNSUPPORTED_CONFIGURATION
Chiedi all'utente le autorizzazioni di accesso alla posizione in fase di runtime
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 località 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 12 o versioni successive:
utenti possono richiedere
a cui la tua app può accedere soltanto
posizione approssimativa
informazioni. Per soddisfare questa richiesta, la tua app deve avere
ACCESS_COARSE_LOCATION
all'autorizzazione 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 possono essere configurati se l'app le 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 Geospaziale utilizza una combinazione di VPS e GPS per determinare una posa geospaziale, l'API può essere utilizzata purché il dispositivo sia in grado di determinare la sua posizione. Nelle aree con una scarsa precisione GPS, come gli spazi interni e gli ambienti urbani ad alta densità, l'API si baserà sulla copertura VPS per generare pose ad alta precisione. In condizioni tipiche, la precisione di posizionamento dei VPS è di circa 5 metri e una precisione di rotazione di 5 gradi. Utilizza ArSession_checkVpsAvailabilityAsync()
per determinare se una determinata località ha una copertura VPS.
L'API Geospatial può essere utilizzata anche in aree che non hanno una copertura VPS. In ambienti esterni con poche ostruzioni dall'alto o nessuna, il GPS può essere sufficiente per generare una posa con un'elevata precisione.
Passaggi successivi
- Ottieni la posa geospaziale della fotocamera del dispositivo per determinare la posizione esatta del dispositivo dell'utente nel mondo reale.
- Verifica la disponibilità dei servizi VPS nella posizione specifica di un dispositivo.