3

我见过一些应用程序,如 gpsspoofer 和假 gps 应用程序,它们将位置设置为欺骗错误的位置,但我的应用程序要获得正确的位置,请提供建议。

我的另一个问题

    Loc.requestLocationUpdates(Provider.get(i), 600000, 1000, new LocationListener() {
        @Override
        public void onStatusChanged(String provider, int status,Bundle extras) {
        /// some thing
       }
       @Override
       public void onProviderEnabled(String provider) {
       /// some thing
      } 
       @Override
       public void onProviderDisabled(String provider) {
        /// some thing
       }
       @Override
       public void onLocationChanged(Location location) { 
      /// some thing
      }
     });
    }

我的问题是,如果我已经设置了600000 毫秒的位置更新,那么为什么每个小于10006000000的小间隔都会调用onLocationChanged(Location location)

4

2 回答 2

3

据我所知,这是可能的。可以从两件事中检索 Gps。来自手机本身的 GPS,这个可以被没有 root 访问权限的人通过使用模拟定位来欺骗。以及具有 root 权限且没有打开模拟定位的正确权限的人。也可以使用 wifi (wps) 计算用户的位置。我不知道是否有任何方法可以简单地伪造 wps 位置,但是如果将这两者结合起来,并且它们不一样,您就可以知道是否有人在伪造 gps。

于 2013-01-02T10:50:36.650 回答
1

简单的答案:你不能。您的应用程序从系统获取 GPS 位置。这些应用程序的工作方式使系统返回欺骗/不正确的值。如果您在有根手机上运行并拥有 root 权限,那么您可以检查 GPS 呼叫是否被拦截并对其进行处理。否则你就不走运了。

反向问题:如何检测是否存在某种 GPS 模拟?http://gpscreations.com/Products_GPS_SIM14.html也就是说,你永远无法确定。即使对于软件解决方案,如果您正在检查,应用程序可能已经预料到了这一点并具有反检查机制;所以你需要检查那些;这也可能是意料之中的等等。-海龟一直向下:-(

于 2012-09-07T00:49:29.890 回答