Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MockLocationUtil {
- public static final String PROVIDER NAME = "testProvider";
- public static void publishMockLocation(double latitude, double longitude, Context ctx) {
- LocationManager mLocationManager = (LocationManager) ctx.getSystemService(Service.LOCATION_SERVICE);
- for (String prov : mLocationManager.getAllProviders()) {
- Log.w(TAG, prov);
- }
- if (mLocationManager.getProvider(PROVIDER_NAME) != null) {
- Log.w(TAG, "Removing provider " + PROVIDER_NAME);
- mLocationManager.removeTestProvider(PROVIDER_NAME);
- }
- for (String prov : mLocationManager.getAllProviders()) {
- Log.w(TAG, prov);
- }
- if (mLocationManager.getProvider(PROVIDER_NAME) == null) {
- Log.w(TAG, "Adding provider " + PROVIDER_NAME + " again");
- mLocationManager.addTestProvider(PROVIDER_NAME, "requiresNetwork" == "", "requiresSatellite" == "",
- "requiresCell" == "", "hasMonetaryCost" == "", "supportsAltitude" == "", "supportsSpeed" == "",
- "supportsBearing" == "", android.location.Criteria.POWER_LOW, android.location.Criteria.ACCURACY_FINE);
- }
- for (String prov : mLocationManager.getAllProviders()) {
- Log.w(TAG, prov);
- }
- Location newLocation = new Location(PROVIDER_NAME);
- newLocation.setLatitude(latitude);
- newLocation.setLongitude(longitude);
- newLocation.setTime(System.currentTimeMillis());
- newLocation.setAccuracy(25);
- mLocationManager.setTestProviderEnabled(PROVIDER_NAME, true);
- mLocationManager.setTestProviderStatus(PROVIDER_NAME, LocationProvider.AVAILABLE, null, System.currentTimeMillis());
- mLocationManager.requestLocationUpdates(PROVIDER_NAME, 0, 0, new MockLocationListener());
- mLocationManager.setTestProviderLocation(PROVIDER_NAME, newLocation);
- Log.w(TAG, "published location: " + newLocation);
- Log.w(TAG, "LastKnownLocation of "+PROVIDER_NAME+" is: "+mLocationManager.getLastKnownLocation(PROVIDER_NAME));
- }
- public Location getLastKnownLocationInApplication(Context ctx) {
- Location testLoc;
- LocationManager lm = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE);
- if (lm.getAllProviders().contains(PROVIDER_NAME)) {
- testLoc = lm.getLastKnownLocation(PROVIDER_NAME);
- Log.d(TAG, "TestLocation: " + testLoc);
- }
- Location realLoc = lm.getLastKnownLocation();
- if(testLoc != null) {
- return testLoc;
- } else {
- return realLoc;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement