studio longitude latitude last known google geocoder example ejemplo and android geolocation location latitude-longitude

longitude - get location google android



locationManager.getLastKnownLocation() return null (5)

Cuando usa el GPS como proveedor, obtiene su resultado en 1 a 2 millas por lo que debe verificarlo polémicamente cuando se detiene la ubicación y Network Provider le proporciona la ubicación inmediata cuando lo solicita. Por lo tanto, no obtienes Latitud de ubicación inmediata en el proveedor de GPS.

El GPS toma 1 a 2 solo la primera vez y después le dará la ubicación en la llamada ...

No entiendo por qué locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); devolver la ubicación nula. Le di todo el permiso, pero su reutning null .

if (isGPSEnabled) { if (location == null) { locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("GPS", "GPS Enabled"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); } } } }


En referencia a la documentación , devuelve nulo, si el dispositivo no tiene conocimiento de la última ubicación conocida. Probablemente el GPS no pueda ubicarte. Tarda aproximadamente un minuto o más, de todos modos. Intente salir, bajo el cielo despejado, lejos de edificios altos, y espere hasta que el GPS pueda ubicarlo.


Tenía exactamente el mismo problema. Fue porque mi dispositivo no estaba almacenando una última ubicación conocida. Simplemente fui a Google Maps e identifiqué mi ubicación con GPS, luego se devolvió un valor para getLastKnownLocation ()


Utilicé este método para obtener la ubicación, creo que te ayudará

private void startReceivingLocationUpdates() { if (mLocationManager == null) { mLocationManager = (android.location.LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE); } if (mLocationManager != null) { try { mLocationManager.requestLocationUpdates( android.location.LocationManager.NETWORK_PROVIDER, 1000, 0F, mLocationListeners[1]); } catch (SecurityException ex) { Log.i(TAG, "fail to request location update, ignore", ex); } catch (IllegalArgumentException ex) { Log.d(TAG, "provider does not exist " + ex.getMessage()); } try { mLocationManager.requestLocationUpdates( android.location.LocationManager.GPS_PROVIDER, 1000, 0F, mLocationListeners[0]); if (mListener != null) mListener.showGpsOnScreenIndicator(false); } catch (SecurityException ex) { Log.i(TAG, "fail to request location update, ignore", ex); } catch (IllegalArgumentException ex) { Log.d(TAG, "provider does not exist " + ex.getMessage()); } Log.d(TAG, "startReceivingLocationUpdates"); } }


Puede solicitar actualizaciones de ubicación como esta

mLocationManager.requestLocationUpdates(myProvider, 0, 0, locationChangeListener);

luego en la primera devolución de llamada en locationChangeListener.onLocationChanged establece tus coordenadas. No olvides llamar a mLocationManager.removeUpdates(locationChangeListener)