Obtendo Endereços Com Geocoder em Location API Android - Parte 3
(9628) (26)
CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim
CategoriaDesenvolvimento Web
Autor(es)Robert C. Martin
EditoraAlta Books
Edição1ª
Ano2023
Páginas416
Tudo bem?
Nesta terceira parte da série de artigos (vídeos) sobre a Location API no Android vamos destrinchar uma maneira simples de "como obter o endereço de um local especifico" utilizando a classe Geocoder, uma das importantes classes presentes no pacote de APIs da Android Location API.
Apesar da documentação ressaltar a utilização do provedor FINE_LOCATION, apesar disso é possível trabalhar a API Geocoder com o provedor FUSED_PROVIDER (neste caso não haverá uso do recurso GPS).
Porém o resultado tende a ser desastroso, pois sem o uso de GPS a localidade obtida tende a ser bem distante da localização real do aparelho.
Logo, ao menos para a obtenção de endereços com alta acurácia, é inteligente seguir a dica da documentação oficial e utilizar dados providos pelo provedor FINE_LOCATION (que faz uso do recurso GPS).
E caso o GPS não esteja ativo desde o início da solicitação de coordenadas com o provedor FINE_LOCATION, então é possível solicitar a ativação deste recurso ao usuário. Uma simples Intent faz isso por nós (essa configuração de intenção também será apresentada em vídeo).
Note que devido às chamadas do objeto Geocoder aos métodos de captura de informação serem síncronas e ao mesmo tempo consumirem recursos de comunicação remota (conexão com a Internet).
Devido a isso:
Estas chamadas a esses métodos devem ocorrer fora da Thread Principal.
No vídeo essas chamadas ocorrem dentro de uma Worker Thread, mais precisamente dentro do método onHandleIntent() de um IntentService.
No vídeo eu explico melhor porque optei por um IntentService ao invés de um Service.
E, já adiantando, os métodos Geocoder de obtenção de informação de endereço são:
- getFromLocation();
- getFromLocationName();
- getFromLocationName().
No vídeo vamos utilizar a biblioteca EventBus para comunicação com o IntentService.
Mas, como exercício de evolução no desenvolvimento Android, tente também a implementação com o ResultReceiver e com o LocalBroadcastManager. Alias, a melhor escolha, acredite, é o LocalBroadcastManager e não a EventBus API.
Uma outra implementação de exercício que você pode estar testando é a dos métodos de resultado da classe Address. Verifique, por exemplo, quais realmente são retornados e quais são iguais a null.
Antes de finalizar, abaixo deixo alguns links de outros conteúdos do Blog que lhe colocarão em dia com o que há de mais atual no mundo do desenvolvimento de aplicativos Android:
- Kotlin Android, Entendendo e Primeiro Projeto;
- Android Studio: Instalação, Configuração e Otimização;
- Android Mobile-Commerce, Apresentação e Protótipo do Projeto.
E caso você tenha como meta aprender a criar aplicativos Android, ou evoluir nesta área, também com o conteúdo gratuito do Blog e canal, então não deixe de acessar a lista de estudos gratuita e exclusiva:
Não esqueça de se inscrever 📫na lista de e-mails do Blog para receber os conteúdos Android em primeira mão e também em formato PDF (esse formato é liberado somente para os inscritos na lista de e-mails).
Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades.
Surgindo dúvidas ou dicas, pode enviar abaixo na área de comentários que logo eu lhe retorno.
Obs. : o link para download do projeto apresentado em vídeo se encontra logo abaixo no artigo, mais precisamente na seção "Download".
Abraço.
Dica importante
Quando vejo desenvolvedores estudando APIs de obtenção de coordenadas, logo me vem a cabeça 🤔 se uma intenção do Google Maps já não seria o suficiente.
Sendo assim, depois de consumir este artigo não deixe de também conhecer essa ferramenta sensacional e nativa Android:
Versão do Android Studio IDE
Apesar da versão do Android Studio IDE no vídeo não ser a mais atual disponível, isso não deve ser um empecilho para você estudar a Location API por está série de conteúdos.
Até porque a versão do Android Studio não influencia em nada em quais APIs serão utilizadas e como essas serão trabalhadas em código.
Logo, siga tranquilo(a) o tutorial com a versão Android Studio que você tem em seu ambiente de desenvolvimento.
AndroidX
Apesar do conteúdo sobre a Location API ainda estar atual e ser importante para qualquer nível de desenvolvedor Android.
Apesar disso eu também recomendo, assim que finalizado o projeto em sua própria instalação de IDE, que você o migre para o AndroidX (caso ainda não tenha feito).
Algo que pode ser realizado com poucos cliques, como apresentado no tutorial a seguir: Migrar para o AndroidX.
Aula anterior
Como informado no início desta postagem, este artigo (vídeo) é a Parte 3 de uma série de cinco partes.
A aula anterior é a:
Próxima aula
A próxima aula é a:
É importante que você siga as aulas na ordem correta para assim poder tirar o máximo da série e então evoluir, como esperado, no mundo de desenvolvimento de aplicativos Android.
Fontes
runOnUiThread, Atalho de Acesso a Thread Principal no Android
Documentação oficial Geocoder Android
Documentação oficial Address Android
Comentários Facebook