检查地理位置是否被欺骗



我想确保LocationListener收到的位置是一个"真实的"位置,而不是来自欺骗的来源(即应用程序位置欺骗)。我不关心"但是用户有时想要欺骗位置"——这是关于一个应用程序不能在android市场上发布。应用程序不需要那么精确的位置——它只需要是"真实的"。

你认为有没有办法检查位置是否被欺骗了?
你认为防止位置欺骗的好方法是什么?
也许有一个android方法给我的真实位置,然而?
是否可能有一个android方法来确定位置是否已被欺骗?

我的想法:

  • 如果安装了位置欺骗应用程序,检查黑名单
  • 启用/禁用不同的位置提供程序并检查它们返回的位置
  • 运行后台服务观察位置(以被动的方式)并检查突然的位置变化

请告诉我你对这个问题的看法和意见。

  • 从提供商名称:'gps'或'network'是合适的
  • 大多数欺骗者忘记发送GPS状态更新。这是你可以利用的优势

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

最好的方法是:

    模拟位置提供程序不发送NMEA数据。所以创建一个NMEA监听器。如果你没有得到NMEA更新,但你在onLocationChanged()中得到有效的GPS更新,一个欺骗正在被使用。

请看下一页的"维护当前最佳评估"主题:

保持当前的最佳评估

最新更新