Pronto!

Para começar a desenvolver, acesse nossa documentação do desenvolvedor.

Ativar a API do Google Places para Android

Para começar, orientaremos você pelo Console de Desenvolvedores do Google para realizar algumas atividades:

  1. Criar ou selecionar um projeto
  2. Ativar a Google Places API for Android
  3. Criar chaves apropriadas
Continuar

Seletor de local

O widget de IU do seletor de local

O seletor de local é um widget de IU integrado simples e flexível que faz parte da Google Places API for Android.

Apresentação do seletor de local

O PlacePicker fornece uma caixa de diálogo na IU que exibe um mapa interativo e uma lista de locais próximos, incluindo locais correspondentes a endereços geográficos e negócios locais. Os usuários podem escolher um local para que o aplicativo recupere os detalhes desse local.

O seletor de local oferece as seguintes vantagens em comparação a desenvolver seu próprio widget de IU:

  1. A experiência do usuário é consistente com outros aplicativos que usam o seletor de local, incluindo aplicativos do Google e de terceiros. Isso significa que os usuários do seu aplicativo já sabem como interagir com o seletor de local.
  2. O mapa é integrado ao seletor de local.
  3. A acessibilidade é integrada.
  4. Você poupa tempo de desenvolvimento.

O seletor de local tem a funcionalidade de preenchimento automático, que exibe previsões de local com base na entrada de pesquisa do usuário. Essa funcionalidade está presente em todas as integrações do seletor de local, portanto, não é preciso fazer nada extra para ativar o preenchimento automático. Para obter mais informações sobre o preenchimento automático, consulte Preenchimento automático de locais.

Permissões

Se o aplicativo usa o seletor de local, é preciso solicitar permissão de ACCESS_FINE_LOCATION.

Novo modelo de permissões no Android 6.0 Marshmallow

O Android 6.0 Marshmallow introduziu um novo modelo de processamento de permissões que otimiza o processo para quando os usuários instalam e atualizam aplicativos. Desde que você use a versão 8.1 ou posterior do Google Play Services, é possível configurar o aplicativo para trabalhar com o Android 6.0 Marshmallow SDK e usar o novo modelo de permissões.

Se o aplicativo for compatível com o novo modelo de permissões, o usuário não terá que conceder nenhuma permissão quando instala ou atualiza o aplicativo. Em vez disso, o aplicativo deve solicitar permissões quando precisar delas em tempo de execução, e o sistema exibe uma caixa de diálogo ao usuário para solicitar a permissão.

Para saber mais, veja a documentação do Android 6.0 Marshmallow e as alterações que você deve fazer no aplicativo para o novo modelo de permissões.

Adicionar um seletor de local

Veja um resumo das etapas necessárias para executar o seletor de local:

  1. Use o PlacePicker.IntentBuilder() para construir uma Intent.
  2. Se você quiser mudar o comportamento padrão do seletor de local, poderá usar o construtor para definir os limites iniciais de latitude e longitude do mapa exibido pelo seletor. Chame setLatLngBounds() no construtor, passando LatLngBounds para definir os limites iniciais de latitude e longitude. Esses limites definem uma área chamada de "viewport". Por padrão, a viewport fica centralizada na localização do dispositivo, com o zoom em nível de quarteirão urbano.
  3. Chame startActivityForResult() passando a intenção e um código de solicitação predefinido para poder identificar a solicitação quando o resultado for retornado.

O fragmento de código a seguir executa o seletor de local:

int PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();

startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST);

Quando o usuário seleciona um local, é possível recuperá-lo chamando PlacePicker.getPlace(). Se o usuário não selecionar um local, o método retornará null.

Você também pode recuperar os limites mais recentes do mapa chamando PlacePicker.getLatLngBounds().

O fragmento de código a seguir recupera o local que o usuário selecionou:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == PLACE_PICKER_REQUEST) {
    if (resultCode == RESULT_OK) {
        Place place = PlacePicker.getPlace(data, this);
        String toastMsg = String.format("Place: %s", place.getName());
        Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
    }
  }
}

Definir cores personalizadas usando o tema do Material

Se você definir cores personalizadas no seu aplicativo usando o tema do Material, o seletor de local herdará os atributos colorPrimary e colorPrimaryDark do tema. Isso é útil para manter a marca consistente no aplicativo e no seletor de local.

Exibir atribuições no seu aplicativo

Quando o aplicativo exibe informações fornecidas pelo seletor de local, ele deve também exibir atribuições. Consulte a documentação sobre atribuições.

Enviar comentários sobre…

location_on
Google Places API for Android