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);
如何伪造地图的(新)当前位置?
不再使用 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);