2012-03-31 37 views
0

我正在开发一个在后台运行的本地化应用程序。iphone - 电池使用startMonitoringSignificantLocationChanges和desiredAccuracy

我正在使用startMonitoringSignificantLocationChanges来获取用户的位置更新。

我知道这种方法只使用手机信号塔来确定用户的位置,但它可以节省电池,即使它不是很准确。

我想知道,将这种方法与desiredAccuracydistanceFilter相结合的效果是什么?

它仍然不准确和电池友好?

或者它实际上会使用GPS并且耗尽电池?

感谢

回答

0

我的建议是使用两个CCLocationManager的和委托方法

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 

第一个为startMonitoringSignificantLocationChanges,第二个为[locationManager startUpdatingLocation]。这里是我的意思:你的主要startMonitoringSignificantLocationChanges和不时你的选择如何做到这一点,当你获得第一个GPS位置坐标时,立即拨打第二个locationManager[locationManager startUpdatingLocation],你叫[locationManager stopUpdatingLocation]。这种方法是节能的,你会收到一些GPS坐标。只是让一些个人逻辑来处理从女巫locationManager来,什么时候开始和停止GPS。

希望你能理解我的逻辑,如果不是我会写一些代码。现在我不在我的Mac上。

+0

是的请写一些代码,我有点失落。谢谢 – subharb 2012-04-01 16:22:15

0

documentation for startMonitoringSignificantLocationChanges状态:

它不依赖于distanceFilter属性来生成事件的价值。

而且据我所知,现在有办法告诉位置管理器使用desiredAccuracystartMonitoringSignificantLocationChanges,从而制动该方法是可用的应用程序的高效节能的性质,在后台“运行”。