Defina as configurações do app para que ele possa usar a API Geospatial.
Pré-requisitos
Verifique se você entendeu os conceitos fundamentais de RA e como configurar uma sessão do ARCore antes de continuar.
App de exemplo e codelab
Este vídeo mostra as etapas de criação de um app que exibe dados geoespaciais e coloca o conteúdo em locais reais usando a API Geospatial.
Também é possível seguir a documentação do codelab Geoespacial para as mesmas etapas. Para executar o app de amostra criado no vídeo, consulte o Guia de início rápido do ARCore Geospatial.
Consulte a Introdução à API Geospatial para mais informações sobre a API Geospatial.
Se você não tem experiência no desenvolvimento com o ARCore, consulte os Primeiros passos para ver informações sobre requisitos de software e hardware, pré-requisitos e outras informações específicas das plataformas que você está usando.
Verifique se o ambiente de desenvolvimento atende aos requisitos do SDK do ARCore, conforme descrito no Guia de início rápido.
Ativar a API ARCore
Antes de usar o sistema de posicionamento visual (VPS, na sigla em inglês) no seu app, ative a API ARCore em um projeto novo ou atual do Google Cloud. Esse serviço é responsável por hospedar, armazenar e resolver âncoras geoespaciais.
É preferível usar autorização sem chave, mas a autorização por chave de API também é aceita.
Adicionar bibliotecas necessárias ao app
Depois de autorizar o app a chamar a API ARCore, adicione bibliotecas para ativar os recursos geoespaciais no app.
No arquivo build.gradle
do seu app, configure o Google Play Services para incluir a biblioteca de localização do Google 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)'
}
Ativar recursos geoespaciais na configuração da sessão
Antes de criar a sessão, altere GeospatialMode
na configuração
da sessão para 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 })
Enquanto o modo geoespacial está definido como ENABLED
, o aplicativo tem permissão para receber
informações geográficas do sistema de posicionamento visual (VPS, na sigla em inglês).
Solicitar que o usuário permita o uso de dados do dispositivo
Os apps que usam a API ARCore Geospatial precisam apresentar ao usuário uma solicitação para confirmar e permitir o uso dos dados do dispositivo. Consulte Requisitos de privacidade do usuário para mais informações.
Verificar a compatibilidade do dispositivo
Nem todos os dispositivos com suporte ao ARCore também são compatíveis com a API Geospatial, conforme descrito no quickstart.
Para verificar a compatibilidade do dispositivo do usuário, chame
Session.checkGeospatialModeSupported()
.
Se retornar "false", não tente configurar a sessão (abaixo), porque isso
gerará uma
UnsupportedConfigurationException
.
Pedir permissões de localização ao usuário durante a execução
Seu app precisa solicitar permissões de localização durante a execução.
Para usar a API ARCore Geospatial, seu app precisa registrar as seguintes permissões extras:
ACCESS_FINE_LOCATION
, para determinar com precisão a localização do usuário.ACCESS_COARSE_LOCATION
para determinar de forma não precisa a localização do usuário e obedecer aos requisitos de privacidade. No entanto, a API Geospatial não pode ser configurada para funcionar com a localização aproximada, e as solicitações de API vão falhar quando o usuário definir essa permissão. Veja mais informações a seguir.ACCESS_INTERNET
para entrar em contato com o serviço da 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>
Em dispositivos com o Android 12 ou versões mais recentes,
os usuários podem solicitar
que o app tenha acesso apenas às
informações de
local aproximado. Para acomodar essa solicitação, seu app precisa ter a permissão
ACCESS_COARSE_LOCATION
configurada, além de
ACCESS_FINE_LOCATION
,
conforme mostrado acima. Você precisa configurar as duas permissões de localização.
No entanto, quando os usuários especificam a localização aproximada, isso impede que a API Geospatial acesse a localização exata necessária. O serviço Geospatial não poderá ser configurado se o app fornecer apenas a localização aproximada. O app não pode usar a API Geospatial com a localização aproximada.
Verificar a disponibilidade geoespacial na localização atual do dispositivo
Como a API Geospatial usa uma combinação de VPS e GPS para determinar uma pose geoespacial, a API pode ser usada desde que o dispositivo possa determinar a localização. Em áreas com baixa precisão de GPS, como espaços internos e ambientes urbanos densos, a API vai usar a cobertura de VPS para gerar poses de alta precisão. Em condições típicas, espera-se que o VPS forneça precisão de posição de aproximadamente 5 metros e precisão de rotação de 5 graus. Use Session.checkVpsAvailabilityAsync()
para determinar se um determinado local tem cobertura de VPS.
A API Geospatial também pode ser usada em áreas que não têm cobertura de VPS. Em ambientes ao ar livre com pouca ou nenhuma obstrução aérea, o GPS pode ser suficiente para gerar uma pose com alta precisão.
A seguir
- Capture a pose geoespacial da câmera do dispositivo para determinar a localização exata do dispositivo do usuário no mundo real.
- Verifique a disponibilidade do VPS no local de um dispositivo.