防止模拟的 GPS 位置恢复为真实值



我正在为自己开发一个模拟位置应用程序,到目前为止取得了很好的成功。我可以设置 de 想要的位置,它显示在谷歌地图中。

我的

问题是,有时位置会切换到我的 Nexus 7 LTE (2013) 的 GPS 模块提供的真实位置,其中包含 Android 6.0.1。

我将定位服务设置为仅设备,并使用提供程序LocationManager.GPS_PROVIDER

这是我用来设置所需位置的:

newLocation.setLatitude(lat);
newLocation.setLongitude(lon);
newLocation.setTime(System.currentTimeMillis());
newLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
newLocation.setSpeed((float) (speed / 3.6));
accuracy = (float) generateRandomDouble(ACCURACY_MIN, ACCURACY_MAX);
newLocation.setAccuracy(accuracy);
newLocation.setAltitude(altitude);

我试图解决这个问题:

  1. 每 200 毫秒设置一个新位置
  2. 将时间戳设置为未来
  3. 将精度始终设置为 1
与位置模拟类似的问题,

如模拟GPS位置问题也无济于事。

我注意到的是,如果GPS无法获得良好的信号,这些跳跃发生的频率就会降低。

有没有人对如何避免这些"跳跃"有建议?

我找到了一种用铝箔阻挡内部 GPS 的方法。
这不是我希望的解决方案,但这工作正常,不再跳跃。

最新更新