title: onLocationChanged never gets called Emulator
body: <pre><code>package com.ecsmon.android.core;
  
  import static com.ecsmon.android.constants.Constants.log;
  
  import java.io.IOException;
  import java.util.List;
  
  import android.annotation.SuppressLint;
  import android.content.Context;
  import android.location.Address;
  import android.location.Criteria;
  import android.location.Geocoder;
  import android.location.Location;
  import android.location.LocationListener;
  import android.location.LocationManager;
  import android.os.Bundle;
  
  @SuppressLint("NewApi")
  public class GPSManager {
  
      private double currentLatitude = 0d;
      private double currentLongitude = 0d;
      private static Context mCtx;
      private Location lastLocationBestProvider = null;
      private LocationManager mLocationManager;
      private GPSListenerImpl mGPSListener;
      private com.ecsmon.android.core.LocationListener mOutListener;
      private boolean enabled = false;
      private GPSListenerImpl mNETListener;
  
      public GPSManager(Context ctx, com.ecsmon.android.core.LocationListener locationListener) {
      mCtx = ctx;
      mLocationManager = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE);
      mOutListener = locationListener;
      }
  
      /**
       * Start location updates
       */
      public void start() {
      log("#### Started tracking");
      lastLocationBestProvider = getLastLocationFromBestProvider();
      if (lastLocationBestProvider != null) {
          currentLatitude = lastLocationBestProvider.getLatitude();
          currentLongitude = lastLocationBestProvider.getLongitude();
          log("lat" + currentLatitude + " long " + currentLongitude);
      } else {
          log("last loaction is null");
      }
  //  mGPSListener = new GPSListenerImpl("GPS");
      mNETListener = new GPSListenerImpl("NET");
  
      mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 1, mNETListener);
  //  mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1, mGPSListener);
  
      }
  
      private class GPSListenerImpl implements LocationListener {
      private String name = "";
      public GPSListenerImpl(String name) {
          log("listener created" + name);
          this.name = name;
      }
  
      public void onLocationChanged(Location loc) {
          log("######### LOCATION CHANGED CALLED!!!!!!!!!!!!!!!!! ##############");
          if (loc != null) {
          log("######### location changed " + loc.getAccuracy());
          currentLatitude = loc.getLatitude();
          currentLongitude = loc.getLongitude();
          mOutListener.update(currentLongitude, currentLatitude);
          } else {
          log("location is null");
          }
      }
  
      public void onProviderDisabled(String provider) {
          log("provider disabled &gt; " + name);
      }
  
      public void onProviderEnabled(String provider) {
          log("provider enabled &gt; " + name);
      }
  
      public void onStatusChanged(String provider, int status, Bundle extras) {
          log("status changed");
      }
      }
  
      /**
       * Return last location saved in phone or null
       * 
       * @return Location
       */
      public Location getLastLocationFromBestProvider() {
      if (!enabled) {
          return null;
      }
      try {
          LocationManager lm = (LocationManager) mCtx.getSystemService(Context.LOCATION_SERVICE);
          Criteria criteria = new Criteria();
          criteria.setAccuracy(Criteria.ACCURACY_COARSE);
          criteria.setAltitudeRequired(false);
          criteria.setBearingRequired(false);
          criteria.setCostAllowed(true);
          String strLocationProvider = lm.getBestProvider(criteria, true);
          Location location = lm.getLastKnownLocation(strLocationProvider);
          if (location != null) {
          return location;
          }
          return null;
      } catch (Exception e) {
          log(e.getMessage());
          return null;
      }
      }
  
      /**
       * Returns human readable address from longitude and latitude
       * 
       * @param latitude
       * @param longitude
       * @return
       */
      public String getAddress(Double latitude, Double longitude) {
      if (!enabled) {
          return null;
      }
      String m = "";
      try {
          if (!Geocoder.isPresent()) {
          return null;
          }
          Geocoder geo = new Geocoder(mCtx);
          List&lt;Address&gt; addresses = geo.getFromLocation(latitude, longitude, 1);
          if (addresses.isEmpty()) {
          return null;
          } else {
          if (addresses.size() &gt; 0) {
              m = addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() + ", "
                  + addresses.get(0).getCountryName();
          }
          }
      } catch (IOException ie) {
          log("No connection.");
          return null;
      } catch (Exception e) {
          log("Can't read adress from this cordinates : lat = " + latitude + " long " + longitude); //
          return null;
      }
      return m;
      }
  
      /**
       * Removes all location updates
       */
      public void stop() {
      try {
          mLocationManager.removeUpdates(mGPSListener);
          mLocationManager.removeUpdates(mNETListener);
      } catch (Exception e) {
  
      }
  
      }
  
  }
  </code></pre>
  
  <p>This is my main class for fetching current location and onLocationChanged never gets called. Im testing on emulator, and sending mock longitude and latitude via Emulator Control. Please Help this is driving me mad :(</p>