【问题标题】:locationManager:didUpdateToLocation:fromLocation not getting called for Significant Location Changes MonitoringlocationManager:didUpdateToLocation:fromLocation 没有被调用以进行重大位置变化监控
【发布时间】:2011-05-18 11:51:18
【问题描述】:

我使用标准位置服务实现了后台位置跟踪,并且效果很好。然而,由于这个实现使用了大量的能量,我决定切换到显着的位置变化监控。基本上,我只是将所有对startUpdatingLocation 的调用更改为startMonitoringSignificantLocationChanges,并重用了我之前实现的CLLocationManagerDelegate 方法。

问题是,在切换到重大位置变化监控后,委托方法locationManager:didUpdateToLocation:fromLocation 仅在我开始监控时被调用一次,之后再也不会被调用。我已经在手机周围移动了几公里,并尝试用它坐火车,但仍然没有调用该方法。我在这里错过了什么吗?是否需要启用设置或需要编写特殊代码才能使其正常工作?

谢谢!

【问题讨论】:

    标签: iphone location monitoring cllocationmanager


    【解决方案1】:

    重大的位置变化需要手机信号塔才能运行。如果您没有手机接收信号,您将不会得到任何结果。也可以调用CLLocationManager的significantLocationChangeMonitoringAvailable方法查看是否可用。

    【讨论】:

    • 你说得对,看来问题是手机信号太弱了。
    • 我不相信这是正确的。首先,UIRequiredDeviceCapabilities 键只需要让“iTunes 和 App Store 知道应用程序需要哪些与设备相关的功能才能运行”。其次,UIBackgroundModes 中的“位置”键仅在应用程序“需要使用标准位置服务(相对于重大更改位置服务)”时才需要。详情:developer.apple.com/library/ios/#documentation/general/…
    猜你喜欢
    • 2012-06-11
    • 2012-03-22
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多