我正在为移动平台开发一个新应用程序,它使用GPS来跟踪用户的位置,我需要相信该位置。
那么,我如何让我的移动应用程序信任接收到的GPS位置?现在很容易通过应用程序来伪造它。我找到的唯一解决方案是测试GPS上是否存在模拟,但这甚至可以轻松地被绕过。
我正在使用Cordova构建应用程序。
我正在为移动平台开发一个新应用程序,它使用GPS来跟踪用户的位置,我需要相信该位置。
那么,我如何让我的移动应用程序信任接收到的GPS位置?现在很容易通过应用程序来伪造它。我找到的唯一解决方案是测试GPS上是否存在模拟,但这甚至可以轻松地被绕过。
我正在使用Cordova构建应用程序。
有几种方法可以检查用户是否伪造了他们的位置。其中一种方法是检查他们在开发人员设置中是否选中了“允许模拟位置”。可以使用以下代码来实现:
if (Settings.Secure.getString(getActivity().getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0")) {
//Allow Mock Locations is enabled!
}
@Override
public void onLocationChanged (Location location){
boolean isMockLocation = location.isFromMockProvider();
}
如果您不能信任任何用户,也不能信任用户的设备,那么来自用户或设备的任何内容都是不可信的。
因此,如果您想消除所有作弊行为,那么您唯一能做的就是:
您可以妥协,要求他们向您发送一张明信片,从该位置购买并邮寄,但是当地的一些旅游商店可能会出售邮寄明信片的服务,收取少量费用,这样您就又面临可能的作弊者。
或者,放弃使用用户设备上的应用程序来防止发送虚假位置的想法,利用您所拥有的资源进行工作。