Como o Android obtém a localização aproximada?

15

Eu li que o Android (e sistemas de operação semelhantes, por exemplo, iOS) obtém a localização aproximada atual usando triangulação de torre WiFi ou GSM. Eu recebo a idéia básica, mas tenho perguntas sobre os detalhes.

  1. O Android normalmente usa os dois métodos ou prefere um e recorre ao outro?
  2. Ele se comunica com um servidor para obter a posição via WiFi? (por exemplo, enviando os SIDs dos WiFis para um serviço da web)
  3. Ele se comunica com a operadora para obter a posição através das torres GSM ou isso é feito no dispositivo?
Tim Büthe
fonte

Respostas:

8

Cabe ao desenvolvedor saber como implementar o serviço de localização. A descrição completa está disponível aqui:

http://developer.android.com/guide/topics/location/obtaining-user-location.html

O gráfico sobre 1/3 da página é bastante útil para ver o que um aplicativo típico pode fazer, mas, novamente, depende totalmente do desenvolvedor do aplicativo. Os tipos de serviço de localização são:

  • Correção em cache
  • Cell-ID
  • Wi-fi
  • GPS
  • Localização falsa

Se o aplicativo solicitar permissão apenas para localização aproximada, não usará o GPS para determinar a localização.

Para responder suas perguntas ...

  1. Depende do desenvolvedor do aplicativo individual, mas, na maioria dos casos, a sequência será Correção em cache, ID da célula, Wifi, GPS, nessa ordem.
  2. Sim, depois de adquirir os IDs ou SSIDs da torre dos sinais de WiFi, esses dados são transmitidos ao Google para determinar uma localização aproximada.
  3. Não, o Google fez algo realmente inteligente aqui. O Google possui seu próprio banco de dados de locais da torre de celular e não exige interação com a operadora para determinar o local da torre.

Este artigo contém alguns detalhes http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/

A versão curta é que, quando você usa um aplicativo como o Google Maps, o aplicativo envia as informações atuais de ID da célula de volta, juntamente com sua correção GPS atual. Dessa maneira, o Google obtém uma amostra muito boa da força do sinal em vários locais e é capaz de construir um banco de dados muito rico.

JadeMason
fonte
Gosto muito da sua resposta, mas não tenho certeza se você está certo na parte "depende totalmente do desenvolvedor". Tanto quanto eu posso dizer, o desenvolvedor só pode decidir obter a multa ou a localização aproximada. Em outras palavras, ele pode usar o LocationManager.NETWORK_PROVIDER e / ou LocationManager.GPS_PROVIDER para obter o local. Eu acho que ele não pode decidir ou mesmo ver, se Wifi ou GSM é usado, certo?
Tim Büthe
No caso mais comum, o desenvolvedor não se importa se os dados são provenientes de WiFi ou Cell-ID, mas o desenvolvedor pode colocar restrições para permitir que o aplicativo funcione apenas quando o WiFi estiver desativado ou o GPRS / GSM estiver desativado. Entendi sua pergunta: "Existe uma sequência padrão que todos os aplicativos seguem" e a resposta é não. No entanto, com relação à diferença entre WiFi e Cell-ID, o desenvolvedor do aplicativo tem capacidade limitada para solicitar especificamente um tipo de serviço de localização.
JadeMason
11
você conhece uma maneira de enviar a localização dos pontos de acesso Wi-Fi ao banco de dados para que eu tenha melhores triangulações no meu bairro / interior? Eu abri um tópico para esse meu questionário: android.stackexchange.com/questions/4715/…
23411 Özgür
3

Muito disso é específico da operadora e eu não sou um desenvolvedor, mas aqui está o que eu poderia juntar das interwebs e dos treinamentos que tive na investigação de crimes eletrônicos:

  1. Sim, mas depende das prioridades específicas de aplicativos LBS, definidas pelo desenvolvedor e podem ser baseadas na precisão do curso atual, nos níveis de potência, nas prioridades predefinidas ...
  2. Sim. As operadoras possuem DBs de localização de estação base Wifi proprietários.
  3. Não posso falar com o Android especificamente, mas geralmente esse será o tipo de operadora e rede (CDMA ou GSM). Os telefones são capazes de ambos, mas há pelo menos alguns anos atrás eles fizeram esse trabalho no aparelho por causa das restrições de largura de banda de fazê-lo.
Matt
fonte
0

Seu telefone sabe quais são as torres mais próximas. Existe um banco de dados do provedor para cada país cujo ID da torre está localizado no mapa. Esse banco de dados pode ser pequeno o suficiente para ser pré-instalado pelo seu provedor ou fornecido pelo ar. Como um telefone Android obtém esses dados, não sei.

Barfieldmv
fonte
-1

Eu tenho respostas ligeiramente diferentes para o item 3: o dispositivo pode ser usado se você quiser usar a triangulação, mas você precisa usar a transportadora se quiser corresponder ao Cell-ID e à localização da torre gsm (ou cdma).

Roubar
fonte
mas essa é uma opção que pode ser determinada por um desenvolvedor de aplicativos ou mesmo por um usuário final ou é algo que é determinado pela operadora?
Matt
É obrigatório, se você deseja usar desta maneira para localizar um dispositivo. O uso de triangulação ou outro método permite saber onde você está versus a posição da antena. Mas se você não souber o lat / long da antena, não poderá obter sua posição em um mapa. Eu casa eu sou claro :)
Rob
@ Rob Mas você não precisa da transportadora para encontrar a localização da torre. Cada torre transmite um ID único, qualquer pessoa pode pegar e mapear independentemente, sem interação da operadora. O Google faz isso há algum tempo para torres de celular e pontos de acesso Wi-Fi. O carro do Google Streetview pega as informações à medida que viaja, e os usuários do Google Maps em várias plataformas também enviam dados anônimos correspondentes a correções de GPS com IDs e força de antena e Wi-Fi. É parecido com o modo como o Google coleta muitos dados de tráfego nas cidades, eles agregam velocidade e posições de muitos usuários do Google Maps.
precisa saber é o seguinte
Você tem certeza ? Parece surpreendente. Por exemplo, na Alemanha (e em outros países da Europa), o Google foi processado por coletar informações de wifi, então parece que eles não usaram esse recurso. Para o banco de dados GSM, se o Google possui um, ele deve estar acessível e eu nunca ouvi falar sobre isso.
Rob
11
@ Rob googlemobile.blogspot.com/2008/06/... "O telefone sabe o ID da torre de celular que está usando atualmente. Se o telefone tem GPS, o aplicativo Mapas no telefone envia as coordenadas GPS juntamente com o ID da célula para o servidor de localização do Google ". Não é possível encontrar o link no momento, mas eles anunciaram há pouco tempo que o aplicativo Blackberry Google Maps estava enviando de volta o SSID e a força do Wi-Fi nas proximidades pelo mesmo motivo. Isso não é o mesmo que o "erro" de programação no software Streetview que está sendo processado por capturar mais dados de WiFi do que deveria.
precisa saber é o seguinte