Возвращает ноль, если нет последнего известного местоположения для GPS.
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Вам нужно подождать, пока GSP не получит исправление местоположения, чтобы дать вам местоположение, вызвав onLocationChanged.Вы можете добавить прослушиватель состояния GPS, чтобы узнать, когда это происходит.
В onCreate добавить:
locationManager.addGpsStatusListener(locationListener);
Добавить этот метод в locationListener:
@Override
public void onGpsStatusChanged(int event) {
switch (event) {
case GpsStatus.GPS_EVENT_FIRST_FIX:
Log.d("GPSStatus", "GPS First Fix");
break;
case GpsStatus.GPS_EVENT_STARTED:
Log.d("GPSStatus", "GPS Started");
break;
case GpsStatus.GPS_EVENT_STOPPED:
Log.d("GPSStatus", "GPS Stopped");
break;
}
}
Вам следуеттакже проверьте, включен ли GPS, прежде чем запрашивать обновления местоположения.
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))