是否有一种万无一失的方法来检测用户是否伪造了他/她的GPS位置?
该技术应该适用于没有蜂窝连接硬件的Android设备。即仅限Wi-Fi
答案 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,所以例如可以使用最近塔的GSM信号的CID(小区id)和LAC(位置区域代码)来查明用户是否在某个区域。这将需要互联网连接和远程服务请求LAC到GPS坐标转换。
对于解决方案2,您可能会检查不符合用户速度或加速度的异常坐标变化,例如,几秒钟内几英里的变化可能会警告您有关欺骗的坐标。