Osmdroid - 模拟假的 GPS 位置

Osmdroid - simulating fake GPS locations

如何伪造地图的(新)当前位置?

不再使用 MOCKUP_SERVICE 的原因是 (1) Android Studio Lollipot 环境中的错误以及 (2) 使其更加灵活。

第 1 步:编写以下假 LocationProvider。 您可以使用自己的 GPS class 来提供例如最后一个位置。

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);