【问题标题】:Check if geo-location has been spoofed检查地理位置是否被欺骗
【发布时间】:2011-10-01 05:22:07
【问题描述】:

我想确保 LocationListener 接收到的位置是“真实的”,而不是来自欺骗性来源(即应用程序Location Spoofer)。我不在乎“但用户有时想欺骗位置”——这是关于一个不会在安卓市场上分发的应用程序。应用程序不需要那么准确的位置 - 它只需要是“真实的”。

你认为有办法检查位置是否被欺骗?
你认为防止位置欺骗的好方法是什么?
有没有一种 android-method 可以给我真实的但是位置?
是否有一种 android-method 来确定位置是否被欺骗?

我的想法:

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

请给我你对这个问题的想法和意见。

【问题讨论】:

    标签: android gps location position


    【解决方案1】:
    • 来自提供商名称:“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 更新,则使用了欺骗。

    【讨论】:

    • 嗨 Reno,我不知道 NMEA 监听器?怎么引导清楚?
    • ALLOW_MOCK_LOCATION 已弃用
    • 像 Fake GPS Go 这样的应用程序发送 NMEA,知道如何捕捉这种类型的虚假位置吗?
    【解决方案2】:

    查看下一页上的“维护当前最佳估计”主题:

    Maintaining a current best estimate

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 2013-08-27
      • 2021-06-09
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 2012-03-21
      • 2014-01-24
      • 1970-01-01
      相关资源
      最近更新 更多