Fornecedores de localização Android-GPS ou fornecedor de rede?
na minha aplicação gostaria de determinar a localização actual do utilizador. Tenho, no entanto, algumas perguntas a este respeito:
Existem diferentes fornecedores de localização, Qual é o mais preciso? O Fornecedor de GPS ou o Fornecedor de rede?
em que medida os fornecedores disponíveis diferem? Como funcionam?
pode, por favor, fornecer-me alguns excertos de código ou tutoriais sobre como começar com a implementação de Funcionalidade GPS no meu aplicativo?
3 answers
Existem 3 fornecedores de localização no Android.
Eles são:
Gps - > (GPS, AGPS): Nome do Fornecedor de localização GPS. Presente o provedor determina a localização usando satélites. Depender Condições, este Provedor pode demorar um pouco para devolver uma correção de localização. Requer a permissão do andróide.permissao.ACCESS_FINE_LOCATION.
Rede - > (AGPS, CellID, Wi-Fi MACID): Nome da rede location provider. Presente o fornecedor determina a localização com base disponibilidade de torre de celular e pontos de acesso Wi-Fi. Os resultados são retrieved by means of a network lookup. Exige um dos permissões android.permissao.ACCESS_COARSE_LOCATION ou androide.permissao.ACCESS_FINE_LOCATION.
Passivo – > (CellID, Wi-Fi MACID): {[4] } um fornecedor de localização especial para a receber localizações sem iniciar uma localização. Presente o provedor pode ser usado para receber passivamente atualizações de localização quando restante as candidaturas ou os Serviços solicitam-nas sem solicitar efectivamente a localize você mesmo. Este fornecedor irá devolver os locais gerados por outros fornecedores. Requer a permissão androide.permissao.ACCESS_ FINE_LOCATION, embora se o GPS não estiver activo este fornecedor só poderá devolver as correcções grosseiras. Isto é o que Android chama esses provedores de localização, no entanto, o subjacente tecnologias para fazer este material funcionar é mapeado para o conjunto específico de hardware e telco fornecidos capacidades (serviço de rede).
A melhor maneira é usar Primeiro o fornecedor "rede" ou "passivo" , e, em seguida, recurso em "gps", e dependendo da tarefa, alternar entre provedor. Esta abordagem abrange todos os casos e proporciona uma serviço de denominador (no pior caso) e grande serviço (no melhor caso).
Referência do artigo: fornecedores de localização Android-gps, rede, passivo por Fernando Cejas
Código Referência: https://stackoverflow.com/a/3145655/28557
-----------------------Atualização-----------------------
Agora o Android tem o fornecedor de localização em fusão.O fornecedor de localização fundido gere inteligentemente a tecnologia de localização subjacente e dá-Lhe a melhor localização de acordo com as suas necessidades. Simplifica as formas de os aplicativos obterem a localização atual do usuário com maior precisão e menor uso de energia
Fornecedor da localização em fusão fornecer três formas de obter a localização
- última localização: Usar quando quiser saber a localização actual uma vez.
- pedir a localização usando o ouvinte: Usar quando a aplicação estiver no ecrã / interface e necessitar de continuar a localização.
- pedir a localização usando a intenção pendente: Usar quando a aplicação em segundo plano e necessitar de continuar a localização.
Referências :
Local Oficial : http://developer.android.com/google/play-services/location.html
Exemplo do Fornecedor de localização fundido: GIT : https://github.com/kpbird/fused-location-provider-exampleHttp://blog.lemberg.co.uk/fused-location-provider
--------------------------------------------------------
O GPS é geralmente mais preciso do que a rede, mas às vezes o GPS não está disponível, por isso pode ser necessário alternar entre os dois.
Um bom começo pode ser olhar para o site android dev. Eles tinham uma seção dedicada a determinar a localização do Usuário e tem todas as amostras de código que você precisa.Http://developer.android.com/guide/topics/location/obtaining-user-location.html