title: Could not get user location in Samsung Galaxy S3?
body: <p>I have the following class to get the user location.</p>
  
  <pre><code>public class GetUserLocation extends Activity {
  
  Timer timer1;
  
  LocationManager locationManager = null;
  LocationResult locationResult;
  boolean gpsEnabled = false;
  boolean networkEnabled = false;
  public static Location userLocation = null;
  
  public String checkProviders(Context context) {
      if (locationManager == null) {
          locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
      }
      try {
          gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
      } catch (Exception ex) {
          ex.printStackTrace();
          gpsEnabled = false;
      }
  
      try {
          networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
      } catch (Exception ex) {
          ex.printStackTrace();
          networkEnabled = false;
      }
  
      if(!gpsEnabled &amp;&amp; !networkEnabled)
          return "No Location Service Found.\nPlease turn on your location service by\nenabling GPS or Data Service or WI-FI";
  
      if(gpsEnabled &amp;&amp; !networkEnabled)
          return "No Internet Service Found.\nPlease turn on your inernet service by\nenabling Data Service or WI-FI";
  
      return null;
  
  }
  
  public boolean getLocation(Context context, LocationResult result) {
      locationResult = result;
  
      if (locationManager == null) {
          locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
      }
  
      // exceptions will be thrown if provider is not permitted.
      try {
          gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
      } catch (Exception ex) {
  
      }
  
      try {
          networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
      } catch (Exception ex) {
          ex.printStackTrace();
      }
  
      // don't start listeners if no provider is enabled
      if (!gpsEnabled &amp;&amp; !networkEnabled)
          return false;
  
      if (gpsEnabled) {
          locationManager.removeUpdates(locationListenerGps);
          locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,locationListenerGps);
      }
  
      if (networkEnabled) {
          locationManager.removeUpdates(locationListenerNetwork);
          locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,locationListenerNetwork);
      }
  
      timer1 = new Timer();
      //timer1.schedule(new GetLastLocation(), 30000);
  
      return true;
  }
  
  LocationListener locationListenerGps = new LocationListener() {
  
      @Override
      public void onLocationChanged(Location location) {
          timer1.cancel();
  
          locationResult.gotLocation(location);
          locationManager.removeUpdates(this);
          locationManager.removeUpdates(locationListenerNetwork);
      }
  
      @Override
      public void onProviderDisabled(String provider) {
      }
  
      @Override
      public void onProviderEnabled(String provider) {
      }
  
      @Override
      public void onStatusChanged(String provider, int status, Bundle extras) {
      }
  };
  
  LocationListener locationListenerNetwork = new LocationListener() {
      @Override
      public void onLocationChanged(Location location) {
          timer1.cancel();
          locationResult.gotLocation(location);
          locationManager.removeUpdates(this);
          locationManager.removeUpdates(locationListenerGps);
      }
  
      @Override
      public void onProviderDisabled(String provider) {
      }
  
      @Override
      public void onProviderEnabled(String provider) {
      }
  
      @Override
      public void onStatusChanged(String provider, int status, Bundle extras) {
      }
  };
  
  //  class GetLastLocation extends TimerTask {
  //      @Override
  //      public void run() {
  //          
  //          locationManager.removeUpdates(locationListenerGps);
  //          locationManager.removeUpdates(locationListenerNetwork);
  //          
  //          Location networkLocation = null, gpsLocation = null;
  //          if (gpsEnabled) {
  //              //t = Calendar.getInstance().getTimeInMillis();
  //              gpsLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
  //          }
  //          
  //          if (networkEnabled) {
  //              networkLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
  //          }
  //          
  //          // if there are both values use the latest one
  //          if (gpsLocation != null &amp;&amp; networkLocation != null) {
  //              
  //              if (gpsLocation.getTime() &gt; networkLocation.getTime())
  //                  locationResult.gotLocation(gpsLocation);
  //              else
  //                  locationResult.gotLocation(networkLocation);
  //              
  //              return;
  //          }
  //          
  //          if (gpsLocation != null) {
  //              locationResult.gotLocation(gpsLocation);
  //              return;
  //          }
  //          
  //          if (networkLocation != null) {
  //              locationResult.gotLocation(networkLocation);
  //              return;
  //          }
  //          
  //          locationResult.gotLocation(null);
  //      }
  //  }
  
  public static abstract class LocationResult {
      public abstract void gotLocation(Location location);
  }
  
  public void removeUpdates() {
      if(timer1!=null) {
          timer1.cancel();
      }
      locationManager.removeUpdates(locationListenerGps);
      locationManager.removeUpdates(locationListenerNetwork);
      userLocation = null;
      locationResult.gotLocation(null);
  }
  
  public Timer getTimer() {
      return this.timer1;
  }
  
  }
  </code></pre>
  
  <p>This code is working good for other devices, but not in galaxy s3. But in the test S3 device the google map is getting the user location fix.</p>
  
  <p>Can anyone say why is this happening? Any Hints will be appreciated.</p>