如何防止其他用户更改 gps 位置和位置更新调用每个小间隔(比如 3 秒)

Posted

技术标签:

【中文标题】如何防止其他用户更改 gps 位置和位置更新调用每个小间隔(比如 3 秒)【英文标题】:How to prevent other user to change gps location and Location updates called every small interval (say 3 seconds) 【发布时间】:2012-06-23 16:50:07 【问题描述】:

我见过一些应用程序,如 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 设置了位置更新 毫秒 那么为什么 onLocationChanged(Location location) 是 调用 every small interval 小于 10006000000

【问题讨论】:

简单的答案:你不能。您的应用程序从系统获取 GPS 位置。这些应用程序的工作方式使系统返回欺骗/不正确的值。如果您在有根手机上运行并拥有根权限,那么您可以检查 GPS 呼叫是否被拦截并对其进行处理。否则你就不走运了。 反向问题:如何检测是否存在某种 GPS 模拟? gpscreations.com/Products_GPS_SIM14.html 也就是说,你永远无法确定。即使对于软件解决方案,如果您正在检查,应用程序可能已经预料到了这一点并具有反检查机制;所以你需要检查那些;这也可能是意料之中的等等 - 海龟一路向下:-( 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于如何防止其他用户更改 gps 位置和位置更新调用每个小间隔(比如 3 秒)的主要内容,如果未能解决你的问题,请参考以下文章

如何经常更新用户的GPS位置

如何在 Kotlin 中请求 GPS 位置更新

如何在应用程序处于后台时保持GPS接收器位置更新(Google Play服务位置API)

如何将用户的GPS位置与可用的GPS位置进行比较?

如何在启用 MyLocation 的情况下使用 moveCamera 时忽略 GPS 位置更改

如何获取当前 GPS 位置? (最后不知道)