Osmdroid - 模拟伪造的GPS位置

时间:2015-12-23 12:21:54

标签: android osmdroid

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

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

1 个答案:

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