如何防止其他用户更改 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 小于 1000 和 6000000
【问题讨论】:
简单的答案:你不能。您的应用程序从系统获取 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接收器位置更新(Google Play服务位置API)