É possível obter a localização atual do usuário sem usar GPS ou a internet? Quero dizer, com a ajuda do provedor de rede móvel.
android
geolocation
gps
android-gps
Prabhu M
fonte
fonte
Respostas:
O que você está procurando fazer é obter a posição usando o em
LocationManager.NETWORK_PROVIDER
vez deLocationManager.GPS_PROVIDER
. ONETWORK_PROVIDER
resolverá no GSM ou wi-fi, o que estiver disponível. Obviamente, com o wi-fi desligado, o GSM será usado. Lembre-se de que o uso da rede celular tem uma precisão de basicamente 500m.http://developer.android.com/guide/topics/location/obtaining-user-location.html tem algumas informações realmente excelentes e um código de amostra.
Depois de concluir a maior parte do código
OnCreate()
, adicione o seguinte:Você também pode fazer com que sua atividade implemente a
LocationListener
classe e, portanto, implementeonLocationChanged()
em sua atividade.fonte
Ao obter o,
getLastKnownLocation
você não inicia a correção sozinho.Esteja ciente de que isso pode iniciar o provedor, mas se o usuário já obteve uma localização antes, não acho que o fará. Os documentos não são muito claros sobre isso.
De acordo com os documentos getLastKnownLocation:
Aqui está um snippet rápido:
Você também deve adicionar uma nova permissão para
AndroidManifest.xml
fonte
PASSIVE_PROVIDER
,NETWORK_PROVIDER
eGPS_PROVIDER
.fonte
Não, atualmente você não pode obter a localização sem usar GPS ou Internet.
As técnicas de localização baseadas em WiFi, celular ou Bluetooth funcionam com a ajuda de um grande banco de dados que está em constante atualização. Um dispositivo procura IDs de transmissor e os envia em uma consulta pela Internet para um serviço como Google, Apple ou Skyhook. Esse serviço responde com um local com base em pesquisas sem fio anteriores de locais conhecidos. Sem acesso à Internet, você deve ter uma cópia local desse banco de dados e mantê-la atualizada. Para uso global, isso é muito impraticável.
Teoricamente, um provedor móvel poderia fornecer apenas serviço de dados local, mas sem acesso à Internet, e então responder a consultas de localização de dispositivos móveis. Provedores de celular não fazem isso; ninguém quer pagar por esse tipo de acesso restrito aos dados. Se você tiver serviço de dados por meio de sua operadora de celular, terá acesso à Internet.
Resumindo, o uso de LocationManager.NETWORK_PROVIDER ou android.hardware.location.network para obter a localização requer o uso da Internet.
Usar a última posição conhecida exige que você tenha acesso ao GPS ou à Internet recentemente. Se você acabou de ter internet, provavelmente você pode ajustar sua posição ou configurações para ter internet novamente. Se o seu dispositivo não tiver GPS ou acesso à Internet, o último recurso de posição conhecido não o ajudará.
Sem GPS ou internet, você poderia:
fonte
Aqui é possível obter a localização atual do usuário sem o uso de GPS e provedor de rede.
1
Convert cellLocation to real location (Latitude and Longitude), using "http://www.google.com/glm/mmap"
2. Clique aqui para sua referência
fonte
Você já deu uma olhada no Google Maps Geolocation Api? Geolocalização do Google Map
Este é o RestApi simples, você só precisa fazer um POST de uma solicitação, o serviço irá retornar uma localização com precisão em metros.
fonte
Parece que é possível rastrear um smartphone sem usar GPS.
Fontes:
Principal: "PinMe: Rastreando um usuário de smartphone no mundo"
Secundário: "Como rastrear um celular sem GPS - ou consentimento"
Ainda não encontrei um link para o código final da equipe. Quando eu fizer, irei postar, se outro não tiver feito.
fonte
Você pode usar o TelephonyManager para fazer isso.
fonte