如何伪造地图的(新)当前位置?
不再使用MOCKUP_SERVICE的原因是(1)Android Studio Lollipot环境中的错误和(2)使其更加灵活。
答案 0 :(得分:2)
步骤1:编写以下假冒LocationProvider。 您可以使用自己的GPS类来提供最后的位置。
class MyMockupGpsMyLocationProvider implements IMyLocationProvider {
IMyLocationConsumer listener = null;
Location newLoc = GPS.getLastKnownLocation(); // or other class
public boolean startLocationProvider(IMyLocationConsumer var1) {
listener = var1;
return true;
}
public void stopLocationProvider() { }
public Location getLastKnownLocation() {
return GPS.getLastKnownLocation(); // or other class
}
public void updateLocation( Location newLoc) {
listener.onLocationChanged( newLoc, (IMyLocationProvider) this);
}
}
第2步:将其附加到MyOverlay
MyMockupGpsMyLocationProvider fakeGpsLocations = new MyMockupGpsMyLocationProvider();
myLocationOverlay.enableMyLocation(fakeGpsLocations );
第3步:提供假的GPS位置。这里通过调用updateLocation()。
mockupGpsPrivder.updateLocation(currentLocation);