GPS, Triangulação de Antenas e LocationSource no Android

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Android /GPS, Triangulação de Antenas e LocationSource no Android

GPS, Triangulação de Antenas e LocationSource no Android

Vinícius Thiengo
(11845) (22) (1)
Go-ahead
"Sempre procure algo que possa ser aprimorado. Nunca, jamais, conforme-se com o lugar onde está. A maneira como você atinge seus objetivos é sempre experimentar, até que consiga perceber se atingiu um ponto mais alto."
Jeff Sutherland
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Opa! Blz?

Nesse vídeo mostro como ativar e utilizar o GPS e Triangulação de Antenas com a interface LocationListener que é fornecida pelo Android. Mostro também como obter o posicionamento atual do usuário utilizando o método setMyLocationEnabled() da classe GoogleMap e como sobrescrever a classe LocationSource para alterarmos via script a localização do Layer gerado pelo método setMyLocationEnabled().

Aparentemente pode vir a cabeça que para utilizarmos o GPS ou a Triangulação de Antenas temos de ter a API do Google Maps em nosso projeto, não, na verdade a API do Google Maps Android V2 com as funcionalidades de localização do sistema (GPS e cia) nos dão mais "poder de fogo" no momento de montarmos nossos scripts, mas o GPS pode ser utilizado de forma totalmente independente da API do Google Maps.

Fique atento quanto as permissões necessárias para podermos utilizar as funcionalidades de GPS e de Triangulação de Antenas e também a de localização via método setMyLocationEnabled() que utiliza o GPS. Note que o GPS é um dos hardwares que mais consomem bateria do dispositivo, logo saber utilizá-lo junto aos métodos do ciclo de vida de uma Activity tende a otimizar em muito seus scripts, claro que v deve avaliar o nível de necessidade do GPS em seu projeto, pois se for necessário que ele fique rodando no background enviando as coordenadas para um servidor Web não há a necessidade de se preocupar com isso e sim em quanto dar ou o não o stopService() que estará rodando no background. Mas enfim, sem muitas delongas vou deixar você assistir ao vídeo.

Obs. : será necessário que você utilize um dispositivo real com o GPS para poder testar a captura do movimento no método onLocationChanged(). Uma outra opção seria você implementar um script que utilize os métodos liberados pela permissão ACCESS_MOCK_LOCATION.

O link para download do projeto se encontra logo abaixo no post.

Segue links dos posts anteriores sobre o Google Maps Android V2 e entidades relazionadas:

Obtendo e Apresentando Rotas no Google Maps Android V2

Polyline, Geocoder e Distância no Google Maps Android

Markers e Listeners no Google Maps Android

GoogleMap e CameraPosition no Android, Entendendo e Utilizando

Google Maps V2 no Android, Inicio e Configuração

Segue links das páginas apresnetadas em vídeo:

Página da interface LocationListener no site oficial do Android

Página da interface LocationSource no site oficial do Android

Vlw

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

GoogleMap e CameraPosition no Android, Entendendo e UtilizandoGoogleMap e CameraPosition no Android, Entendendo e UtilizandoAndroid
Markers e Listeners no Google Maps AndroidMarkers e Listeners no Google Maps AndroidAndroid
Polyline, Geocoder e Distância no Google Maps AndroidPolyline, Geocoder e Distância no Google Maps AndroidAndroid
Obtendo e Apresentando Rotas no Google Maps Android V2Obtendo e Apresentando Rotas no Google Maps Android V2Android

Compartilhar

Comentários Facebook (4)

Comentários Blog (18)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
Heraldo Gama (1) (0)
23/02/2015
Ola Vinicius,
Sou novo no assunto, e tentei rodar essa app exercicio de GPS, triangulacao e Locationsource no meu dispositivo (android 4.4.4), mas nao mostrou o mapa. Abriu o fragment, controles do mapa, mas o mapa em si não apareceu. Já no emulador padrão ( uso o Android Studio 1.1.0 - API 19) rodou normal. Detalhe, mantive as coordenadas do projeto original e na sequencia mudei pra minhas, também rodou normal. Qual seria o problema de não rodar no dispositivo ?
Responder
Vinícius Thiengo (1) (1)
24/02/2015
Fala Heraldo, blz? Provavelmente já está com o Google Play Services de seu device atualizado, atualize o Google Play Services sendo utilizado no APP tb (atualize no AndroidStudio, não no aparelho, nesse caso). Verifique se no AndroidManifest.xml vc colocou essas permissões tb:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Coloque tb essa linha abaixo dentro de sua tag <application>

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

Abraço
Responder
Heraldo Gama (1) (0)
24/02/2015
Bom dia Vinicius, estamos bem, e porae ?
Bom realmente a linha na TAG aplication do manifest não existia, eu adicionei. Já as permissões estão todas  lá. A versão do play service do SDK está atualizada (no caso a rev. 22) e a do meu celular (versão 6.5.99 - 1642632-038). Continua não apresentando o mapa no celular. Já no emulador, 100%. vou continuar estudando aqui pra ver onde está o problema, se ainda tiver alguma dica, de já agradeço. Abs.
Responder
Vinícius Thiengo (0) (0)
24/02/2015
Heraldo, aqui está ok tb, vlw...
No LogCat, o que está sendo printado nele (lembrando que o LogCat é a chave para descobrir as falhas na APP)? Outra coisa é: vc criou sua própria chave no Google Console igual fiz no vídeo? Abraço
Responder
Heraldo Gama (1) (0)
24/02/2015
ops!!! Sim, criei a chave no console. Você testou no seu celular, funcionou normal ? Ah, obrigado pela breve resposta.
Responder
Vinícius Thiengo (0) (0)
24/02/2015
Sim, rodou sem problemas, se me lembro bem. Nossa última opção agora é saber o que o LogCat está mostrando quando no Android 4.4 (KitKat). Se não conhece o LogCat veja esse vídeo (http://www.thiengo.com.br/entendendo-e-utilizando-o-a-classe-log-com-o-logcat-no-android ). Ai depois volte e informe o que foi printado lá. Abraço
Responder
Heraldo Gama (1) (0)
24/02/2015
Instalei o app num aparelho com a versão 4.1.2, tbm não mostrou o mapa (fica em branco a área onde deveria mostrar o mapa, mas o controle de zoom é mostrado), igual ao que acontece com o meu celular (versão 4.4.4). Como disse, executo no emulador (versão 4.4.2, API 19) e roda normalmente. No log cat, nenhum erro.
Responder
Vinícius Thiengo (0) (0)
24/02/2015
Heraldo, já tive esse problema, ele ocorreu quando assinei a APP e instalei no aparelho, as chaves sendo utilizadas não batiam, pois ele instalava com a chave do android.debug keystore e não com a keystore de minhaAPP que já estava assinada. Vc está assinando a APP e então instalando no aparelho? Para testes utilize a keystore do android.debug mesmo, ou seja, não assine a APP e depois instale no aparelho, apenas instale no aparelho rodando direto do IDE. Mas provavelmente vc já está fazendo isso. Bom vou esperar sua resposta, se mesmo assim não for vou rodar o projeto aqui para ver se algo está errado quando no aparelho real. Abraço
Responder
Heraldo Gama (1) (0)
24/02/2015
Criei a key no google.console, atribui a chave gerada ao meu manifest, gerei o APK e instalei no aparelho.
Responder
Vinícius Thiengo (0) (0)
25/02/2015
Ok Heraldo,
Vc poderia me enviar exatamente o projeto que está utilizando para eu testar aqui com minhas chaves? Somente para simular as mesmas condições que to. Segue email: thiengocalopsita@gmail.com. Abraço
Responder
Heraldo Gama (1) (0)
25/02/2015
Enviei via google drive.
Abs.
Responder
Heraldo Gama (1) (0)
02/03/2015
O problema era a SHA1, que não estava correta!!! Havia usado um recurso (alternativo), criando uma Activity Maps padrão, dae o Android Studio gera um XML com a KEY, no entanto após checar essa KEY com o comando keytool, percebi a diferença. Usei a gerada pelo prompt, e pronto, resolvido!!!! Obrigado, pelo apoio.
Responder
Vinícius Thiengo (0) (0)
03/03/2015
Show de bola Heraldo, abraço
Responder
16/11/2014
Thiengo,
Primeiro, parabéns pelas aulas, estão me ajudando muito! Valeu!
Uma dica legal para quem quiser testar o GPS provider no próprio emulador(Genymotion), na lateral direita da VM existe um botão "GPS", onde é possível simular uma posição como se o GPS real estivesse capturando informações.
Espero que ajude!
Abraço.
Responder
wallace Pacheco (0) (0)
14/11/2014
Cara conheci agora seu site. bem legal. Você poderia me dar uma dica de como saber se a posição do GPS esta fora de uma rota no maps ou no open street view?
Responder
Vinícius Thiengo (0) (0)
15/11/2014
Fala Wallace, blz?
Se é sua necessidade saber se o usuário está narota já aconselho utilizar o GPS provider, pois o provider de triangulação de antenas tem uma margem de erro mt grande. E mesmo com o GPS provider vc terá de colocar uma margem erro, recomendo margem de erro de 10 metros raio (ou seja, circular). Supondo que vc terá todas as coordenadas da rota, a cada par de rota vc consegue realizar essa verificação no seu bd / script que tem as rotas, tendo como parametro de entrada as corrdenadas atuais do usuário. Abraço
Responder
09/05/2014
Seus vídeos são muito bons! Gostei demais!
Assisti um monte. Estou tendo dificuldade pra criar um service que envia as informações de localização pro meu servidor.
Alguma dica?

Abraço!
Responder
Vinícius Thiengo (0) (0)
09/05/2014
Fala Filipe, blz? Então já conseguiu criar o service? Se sim crie um método que terá uma Thread secundária onde vc enviará as informações de coordenadas ao servidor, porém coloque o envio dentro de um While(true) e dentro desse while um Thread.sleep(). Note que o Service terá de implementar o LocationListener, para que todas as funcionalidades de GPS fiquem no Service mesmo. Vc terá de bolar uma lógica tb para desligar o Service, ai vc pode utilizar algumas flags. Outra coisa, essa é apenas uma ideia, com certeza existem várias outras soluções. abraço
Responder