是否有一种万无一失的方法来检测用户是否在伪造他/她的 GPS 位置?
该技术应该适用于没有蜂窝连接硬件的安卓设备。即仅 Wi-Fi
如果这对您有用,请尝试此代码
// 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;
干杯!
我认为你应该让假 GPS 坐标的概念更清晰,因为无论用户是否真的在那里,任何坐标本身都可以被认为是真实的。
因此,您可以采取两种方式:
由于它涉及解决方案 1,您可以例如使用 GSM 信号最近塔的 CID(小区 ID)和 LAC(位置区域代码)来确定用户是否在某个区域。这将需要互联网连接和远程服务请求,以便 LAC 到 GPS 坐标转换。
至于解决方案 2,您可能会检查与用户速度或加速度不符的异常坐标变化,例如几秒钟内几英里的变化可能会警告您关于欺骗性坐标。