如何检测Android中的假GPS坐标?

时间:2013-05-27 11:38:53

标签: android gps

是否有一种万无一失的方法来检测用户是否伪造了他/她的GPS位置?

该技术应该适用于没有蜂窝连接硬件的Android设备。即仅限Wi-Fi

2 个答案:

答案 0 :(得分:17)

如果这适用于您,请尝试使用此代码

// returns true if mock location enabled, false if not enabled.
if (Settings.Secure.getString(getContentResolver(),
   Settings.Secure.ALLOW_MOCK_LOCATION).equals("0")) 
   return false; 
   else return true;

干杯!

答案 1 :(得分:2)

我认为你应该使假GPS坐标更清晰的概念,因为无论用户是否真的在那里,任何坐标都可以被认为是真实的。

因此,您可以采取两种方式:

  1. 从其他来源获取有关您可以与GPS坐标进行比较的位置的任何信息
  2. 分析您的数据(GPS坐标)是否存在差异。
  3. 因为它涉及解决方案1,所以例如可以使用最近塔的GSM信号的CID(小区id)和LAC(位置区域代码)来查明用户是否在某个区域。这将需要互联网连接和远程服务请求LAC到GPS坐标转换。

    对于解决方案2,您可能会检查不符合用户速度或加速度的异常坐标变化,例如,几秒钟内几英里的变化可能会警告您有关欺骗的坐标。