iOS 6 AutoPause不起作用

时间:2012-10-16 18:15:00

标签: ios geolocation location ios6

我从“会话303 - 从位置服务保持正轨”WWDC 2012

开始遵循AutoPause的示例

在该示例中,您可以看到如何启用AutoPause,以及有两种方法:

-(void) locationManagerDidPauseLocationUpdates:(CLLocationManager *)manager
-(void) locationManagerDidResumeLocationUpdates:(CLLocationManager *)manager

我做了同样的例子,但这些方法从未被调用过。 谁尝试过同样的?

2 个答案:

答案 0 :(得分:6)

我现在正在尝试这个,这是我的观察:

在iPhone 4上,这根本不起作用。即使将pausesLocationUpdatesAutomatically设置为YES,它也会将pausesLocationUpdates自动保持为NO(0)。没有警告,这样的API设计反模式是什么!

在iPhone 5上 pausesLocationUpdates默认情况下自动为YES(1)。并调用locationManagerDidPauseLocationUpdates。调用locationManagerDidResumeLocationUpdates我运气不好。如果GPS关闭,我也很困惑如何调用它?一旦用户到达下一个网络小区,它会被调用吗?即使这不是我的经验,也不会被称为。

到目前为止,我认为这是iOS6中最不一致的变化之一。对于所有场景,我可能只是暂停LocationUpdatesAutomatically = NO,并且希望在iOS6的所有型号上都能正常工作。

[更新 - 2013年3月4日]。我浏览了Apple的演示文稿,了解iOS6中的位置变化,他们建议在区域更改事件发生后使用区域更改监控“取消暂停”。虽然这不适合我的场景,因为用户可能会在这样的事件发生之前进行/运行/驾驶一两公里。

答案 1 :(得分:1)

我遇到了同样的问题,发现你必须将属性pausesLocationUpdatesAutomatically设置为YES