package course.labs.contentproviderlab;
// Adapted from code found at:
// http://mobiarch.wordpress.com/2012/07/17/testing-with-mock-location-data-in-android/
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.SystemClock;
public class MockLocationProvider {
private String mProviderName;
private LocationManager mLocationManager;
private static float mockAccuracy = 5;
public MockLocationProvider(String name, Context ctx) {
this.mProviderName = name;
mLocationManager = (LocationManager) ctx
.getSystemService(Context.LOCATION_SERVICE);
mLocationManager.addTestProvider(mProviderName, false, false, false,
false, true, true, true, 0, 5);
mLocationManager.setTestProviderEnabled(mProviderName, true);
}
public void pushLocation(double lat, double lon) {
Location mockLocation = new Location(mProviderName);
mockLocation.setLatitude(lat);
mockLocation.setLongitude(lon);
mockLocation.setAltitude(0);
mockLocation.setTime(System.currentTimeMillis());
mockLocation
.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
mockLocation.setAccuracy(mockAccuracy);
mLocationManager.setTestProviderLocation(mProviderName, mockLocation);
}
public void shutdown() {
mLocationManager.removeTestProvider(mProviderName);
}
}