LocationManager does not work on many phones, as it is highly dependent on custom open source Android code for specific equipment. Samsung phones are very distorted when it comes to LocationManager .
You should not use requestLocationUpdates , use getLastKnownLocation with a little hack instead. Before calling getLastKnownLocation enter the following hack and you can use AlarmManager to receive regular updates.
HomeScreen.getLocationManager().requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } @Override public void onLocationChanged(final Location location) { } });
LocationClient is another alternative to LocationManager . More precisely, it uses hi a lot less battery.
source share