Use o LocationManager
.
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
A chamada para getLastKnownLocation()
não bloquear - o que significa que irá retornar null
se não houver posição está atualmente disponível - então você provavelmente vai querer ter um olhar para a passagem de um LocationListener
para o requestLocationUpdates()
método em vez disso, o que lhe dará atualizações assíncronas de sua localização.
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
}
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);
Você precisará dar ACCESS_FINE_LOCATION
permissão ao seu aplicativo se quiser usar o GPS.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Você também pode querer adicionar a ACCESS_COARSE_LOCATION
permissão para quando o GPS não está disponível e selecione seu provedor local com o getBestProvider()
método .
Aqui está a turma
LocationFinder
para encontrar a localização do GPS. Esta classe ligaráMyLocation
, o que fará os negócios.LocationFinder
Minha localização
fonte
Com
google
coisas mudam com muita frequência: nenhuma das respostas anteriores funcionou para mim.com base neste treinamento do google aqui é como você faz isso usando
isso requer Configurar serviços do Google Play
Classe de atividade
uso
em sua atividade
E esse método
fonte
você pode obter latlng atual usando este
`
`
fonte
As soluções acima também estão corretas, mas em algum momento se o local for nulo, ele travará o aplicativo ou não funcionará corretamente. A melhor maneira de obter o Latitude e Longitude do Android é:
fonte
A melhor maneira é
Adicionar arquivo de manifesto de permissão
Você pode obter a localização do GPS ou, se a localização do GPS não estiver disponível, essa função retornará a localização da REDE
fonte
Atualização 2020: Usando a Kotlin Coroutine para obter Lat, lang e endereço do dispositivo
Esta é uma pergunta antiga e a maioria das respostas está desatualizada. É assim que eu faço meus aplicativos agora:
Esta classe ajuda a rastrear a localização do dispositivo e retornar a lista de Endereço do dispositivo usando a geocodificação. Coloque em alguma classe util
Adicionar seqüências de caracteres para o diálogo de alerta, caso o GPS esteja desativado
Adicione essas permissões ao manifesto do Android e solicite-as no início do aplicativo
Uso
Implemente
DeviceLocationListener
em suaActivity/Fragment
classeSubstituir
onDeviceLocationChanged
retorno de chamada. Você obterá a localização atual emonDeviceLocationChanged
Para iniciar o rastreamento, crie um
DeviceLocationTracker
objeto noonCreate
método. Passe oActivity
como Contexto e este comoDeviceLocationListener
.É isso, agora você começará a receber atualizações de localização
onDeviceLocationChanged
.fonte