10

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

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

4

2 回答 2

20

如果这对您有用,请尝试此代码

// 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;

干杯!

于 2013-05-27T12:26:01.300 回答
2

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

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

  1. 从其他来源获取有关位置的任何信息,您可以将其与 GPS 坐标进行比较
  2. 分析您拥有的数据(GPS 坐标)是否存在差异。

由于它涉及解决方案 1,您可以例如使用 GSM 信号最近塔的 CID(小区 ID)和 LAC(位置区域代码)来确定用户是否在某个区域。这将需要互联网连接和远程服务请求,以便 LAC 到 GPS 坐标转换。

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

于 2013-05-27T12:11:55.080 回答