Usa el LocationManager
.
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
La llamada a getLastKnownLocation()
no bloquea - lo que significa que volverá null
si no hay posición disponible - por lo que es probable que desee echar un vistazo a un paso LocationListener
del requestLocationUpdates()
método en su lugar, lo que le dará actualizaciones asíncronas de su ubicación.
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);
Tendrá que dar ACCESS_FINE_LOCATION
permiso a su aplicación si desea utilizar el GPS.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
También es posible que desee agregar el ACCESS_COARSE_LOCATION
permiso para cuando el GPS no esté disponible y seleccione su proveedor de ubicación con el getBestProvider()
método .
Aquí está la clase
LocationFinder
para encontrar la ubicación del GPS. Esta clase llamaráMyLocation
, lo que hará el negocio.LocationFinder
Mi ubicacion
fuente
Con las
google
cosas cambia muy a menudo: ninguna de las respuestas anteriores me funcionó.basado en esta capacitación de Google aquí es cómo lo haces usando
esto requiere configurar los servicios de Google Play
Clase de actividad
uso
en tu actividad
Y este metodo
fuente
puedes obtener el latn actual usando esto
``
``
fuente
Las soluciones anteriores también son correctas, pero en algún momento si la ubicación es nula, se bloquea la aplicación o no funciona correctamente. La mejor manera de obtener Latitud y Longitud de Android es:
fuente
La mejor manera es
Agregar archivo de manifiesto de permiso
Luego puede obtener la ubicación GPS o si la ubicación GPS no está disponible, entonces esta función devuelve la ubicación de RED
fuente
Actualización 2020: Uso de Kotlin Coroutine para obtener Lat, lang y Address del dispositivo
Esta es una vieja pregunta y la mayoría de las respuestas están desactualizadas. Así es como lo hago ahora con mis aplicaciones:
Esta clase ayuda a rastrear la ubicación del dispositivo y devolver la lista de direcciones del dispositivo usando Geocoding. Ponlo en alguna clase util
Agregue cadenas para el diálogo de alerta en caso de que el GPS esté deshabilitado
Agregue estos permisos en su manifiesto de Android y solicítelos en el inicio de la aplicación
Uso
Implementar
DeviceLocationListener
en tuActivity/Fragment
claseAnular
onDeviceLocationChanged
devolución de llamada. Obtendrá la ubicación actual enonDeviceLocationChanged
Para iniciar el seguimiento, cree un
DeviceLocationTracker
objeto en elonCreate
método de su. Pase elActivity
contexto y esto comoDeviceLocationListener
.Eso es todo, ahora comenzarás a recibir actualizaciones de ubicación
onDeviceLocationChanged
.fuente