Android – Obtener ubicación sólo una vez
Necesito obtener la ubicación del usuario actual en una aplicación para Android, así que he leído algunos tutoriales y muestras en la web, pero veo que en todos los ejemplos, la ubicación es retrived de un "onLocationChange" que significa que cada vez que el Cambio de ubicación, se ejecuta el código en "onLocationChange".
Sólo necesito obtener la ubicación del usuario en el momento en que se inicia la aplicación.
- Android: ¿Una forma sencilla de hacer una geofence?
- Mantenga el mapa centrado, independientemente de dónde pinche el zoom en android
- Google maps haz para mostrar las direcciones de usuario / título en android MapFragment
- ¿Cómo obtener la dirección completa desde la latitud y la longitud?
- Cómo implementar onConnectionFailed () y onDisconnected () para un servicio de ubicación
¡Gracias por tu ayuda!
- Por qué getSpeed () siempre devuelve 0 en android
- Cómo configurar "Tipos" en Google Place PlacePicker en Android?
- Google Maps API V2 Zoom a la ubicación actual
- Android: requestLocationUpdates actualiza la ubicación como máximo cada 45 segundos
- Obtener ubicación GPS a través de un servicio en Android
- Android escribe EXIF Latitude y Longitud GPS en JPEG falló
- ¿Cómo puedo obtener la ubicación GPS actual mediante programación en Android?
- ¿Hay alguna forma alternativa de verificar si el proveedor de ubicación de red está habilitado?
Puede hacerlo con LocationManager. GetLastKnownLocation
Puede obtener la última ubicación con el código siguiente. Obtiene los proveedores de ubicación y bucles sobre la matriz hacia atrás. Es decir, comienza con GPS, si no hay GPS entonces obtiene la ubicación de la red. Puede llamar a este método siempre que necesite obtener la ubicación.
private double[] getGPS() { LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); List<String> providers = lm.getProviders(true); /* Loop over the array backwards, and if you get an accurate location, then break out the loop*/ Location l = null; for (int i=providers.size()-1; i>=0; i--) { l = lm.getLastKnownLocation(providers.get(i)); if (l != null) break; } double[] gps = new double[2]; if (l != null) { gps[0] = l.getLatitude(); gps[1] = l.getLongitude(); } return gps; }
Use LocationManager.requestSingleUpdate ()
Ponga esto en la actividad principal:
boolean bFirst = true; function void onCreate(blabla) { if(bFirst) { //Do your stuff to get the location bFirst = false; } }
Ponga lo mismo en onResume ();
Para el método getGPS()
que Phobos propuso trabajar correctamente, debes permitir el acceso dentro de tu AndroidManifest.xml
Que se deshace de su error de recibir 0.0
Añadir estas líneas:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.LOCATION_HARDWARE" />
- GSON esperaba BEGIN_ARRAY pero era BEGIN_OBJECT
- Varias aplicaciones con una base de código compartida