【问题标题】:CLLocationManager Update frequencyCLLocationManager 更新频率
【发布时间】:2012-01-10 13:25:01
【问题描述】:

我已经配置 locationManager 如下。

_locationManager = [[CLLocationManager alloc] init];
[_locationManager setDelegate:self];
[_locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[_locationManager setDistanceFilter:kCLDistanceFilterNone];

当应用程序运行时,我会从委托方法中获得一些更新。 而当我不改变位置,并且手机静止大约 2 小时时,我会在前 10 分钟内收到大约 10-12 次更新,然后停止接收更新。

我的理解是 desiredAccuracy 是设备将继续尝试越来越准确的方法来获取当前位置的时间。所以在我的情况下,大约需要 10 分钟才能获得所需的准确度。

我想确认这是否属实。还有一种方法可以让我定期更新位置,即使设备没有移动?

【问题讨论】:

    标签: iphone ios4 core-location cllocationmanager


    【解决方案1】:

    如果位置没有更改,您为什么希望它更新?

    如果您想定期刷新结果,请使用您自己创建的NSTimer


    当设备获得一个误差幅度

    如果您指定 10m 的精度,那么您几乎肯定会依赖 GPS - 手机信号塔和 wifi 并不那么准确(通常)。

    要确定设备是否已移动,它使用距离过滤器 - 通过将其设置为无,您要求它始终精确到最近的 10m - 这可能会非常消耗电池;)

    【讨论】:

    • 我正在开发一个应用程序,该应用程序每隔一小时就会通知用户其当前位置。如果设备正在移动,这可以正常工作。但并非如此。我不能使用 NSTimer,因为应用程序并不总是在前台。
    • 也许后台位置更新和本地通知可以以某种方式结合起来?
    • 看看这个问题的公认答案:stackoverflow.com/questions/6347503/… - 看起来他找到了做计时器的方法?
    • 我正在使用位置更新和本地通知。但这仅适用于少数通知。在同一位置大约 2-3 小时后,我没有收到更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    相关资源
    最近更新 更多