getLastKnownLocation () devuelve nulo

He leído muchas preguntas y respuestas sobre este tema aquí en SO, pero debo decir que ninguna de ellas funciona.

Mi problema es que, aunque tengo GPS habilitado, no puedo obtener una ubicación a menos que abro Google Maps y obtengo mi ubicación y luego regrese a la aplicación, que definitivamente no es una opción para los usuarios.

Tengo la siguiente función para obtener la ubicación.

public Location getCurrentLocation() { LocationManager locationManager = (LocationManager) context .getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); String provider = locationManager.getBestProvider(criteria, true); Location myLocation = locationManager.getLastKnownLocation(provider); return myLocation; } 

¿Hay algo que me falta sobre cómo resolver esto? También probé este http://developer.android.com/training/location/retrieve-current.html#last-known pero aún devuelve null.

Gracias por adelantado

¿Hay algo que me falta sobre cómo resolver esto?

Las radios GPS se apagan normalmente, ya que consumen mucha batería. Por lo tanto, getLastKnownLocation() puede devolver null o una ubicación getLastKnownLocation() frecuencia, porque nada está comprobando las correcciones de ubicación. getLastKnownLocation() , por lo tanto, solo es útil si tiene un interés casual en la ubicación y está contento si no hay una ubicación.

Si necesita conocer la ubicación, deberá usar requestLocationUpdates() o algo similar, para que Android encienda la radio del GPS e intente buscar activamente la ubicación.