【问题标题】:do not call onLocationChanged if not moved more than 10 meters如果不移动超过 10 米,则不要调用 onLocationChanged
【发布时间】:2016-05-04 17:00:10
【问题描述】:

如果用户没有移动 10 米或更多,有没有办法限制对 onLocationChanged 的​​调用。

我正在使用带有地图片段的谷歌地图。

【问题讨论】:

    标签: android google-maps location


    【解决方案1】:

    初始化位置管理器,参数最小距离为 10,最小时间为 0。

    http://blog.doityourselfandroid.com/2010/12/25/understanding-locationlistener-android/

    【讨论】:

    • 我使用的是相同的,但是当我使用家庭 wifi 连接时,我的位置仍然在不断变化 locationManager.requestLocationUpdates(provider, 0, 10, this);
    • 如果你使用ACCURACY_FINE,你将只使用GPS,但是GPS有“冷启动”的效果。这意味着如果您的设备长时间不使用 GPS,则需要大量时间连接卫星并下载年历和星历。您无法更改此行为。如果您不使用 ACCURACY_FINE,您将同时使用 GPS 和网络(移动、wi-fi)信号。所以你会很快收到来自网络的第一位置,因为它们没有“冷启动”的效果,但是这种方法的准确性很低。当您的 GPS 模块准备就绪时,您也将开始接收来自它的更新。
    • 我没有使用 ACCURACY_FINE ,我使用的是 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    • 在您的情况下使用 ACCURACY_FINE,因为您的 WIFI 位置会发生变化
    • 我按照您所说的进行了更改,将进行测试并通知您。感谢您的帮助
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 2014-11-23
    相关资源
    最近更新 更多