title: LocationManager not working on Android phone
body: <p>I have a problem,</p>
  
  <p>The locationmanager is working perfectly fine when i test it in the emulator and edit the location in the DDMS screen, but when i test it on the <strong>Samsung Galaxy SII</strong>, its nog working..</p>
  
  <p>Please help me.</p>
  
  <pre><code>import android.app.Activity;
  import android.content.Context;
  import android.location.Location;
  import android.location.LocationListener;
  import android.location.LocationManager;
  import android.os.Bundle;
  import android.telephony.TelephonyManager;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.Toast;
  
  public class LbsGeocodingActivity extends Activity {
  
      private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 0; // in Meters
      private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds
  
      protected LocationManager locationManager;
  
      protected Button retrieveLocationButton;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
  
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          retrieveLocationButton = (Button) findViewById(R.id.retrieve_location_button);
  
          locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  
          locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATES, MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, new MyLocationListener());
  
          retrieveLocationButton.setOnClickListener(new OnClickListener() {
              @Override
              public void onClick(View v) {
                  showCurrentLocation();
              }
          });        
      }    
  
      public String getMyPhoneNumber(){
          TelephonyManager mTelephonyMgr;
          mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
          return mTelephonyMgr.getLine1Number();
      }
  
      protected void showCurrentLocation() {
  
          Location location =   locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
  
          if (location != null) {
              String message = String.format("Current Location \n  Longitude: %1$s \n Latitude: %2$s \n %3$s ", location.getLongitude(), location.getLatitude(), getMyPhoneNumber());
              Toast.makeText(LbsGeocodingActivity.this, message, Toast.LENGTH_LONG).show();
          }
  
      }   
  
      private class MyLocationListener implements LocationListener {
  
      public void onLocationChanged(Location location) {
          String message = String.format(
                  "New Location \n Longitude: %1$s \n Latitude: %2$s \n  %3$s ",
                  location.getLongitude(), location.getLatitude(),   getMyPhoneNumber()
          );
          Toast.makeText(LbsGeocodingActivity.this, message,   Toast.LENGTH_LONG).show();
      }
  
      public void onStatusChanged(String s, int i, Bundle b) {
          Toast.makeText(LbsGeocodingActivity.this, "Provider status changed",
                  Toast.LENGTH_LONG).show();
      }
  
      public void onProviderDisabled(String s) {
          Toast.makeText(LbsGeocodingActivity.this,
                  "Provider disabled by the user. GPS turned off",
                  Toast.LENGTH_LONG).show();
      }
  
      public void onProviderEnabled(String s) {
          Toast.makeText(LbsGeocodingActivity.this,
                  "Provider enabled by the user. GPS turned on",
                  Toast.LENGTH_LONG).show();
      }
  
  }
  }
  </code></pre>
  
  <p>In the permissions i have:</p>
  
  <p><code>ACCES_COURSE_LOCATION</code>
  <code>ACCES_FINE_LOCATION</code></p>