iphone - 使用startMonitoringSignificantLocationChanges和desiredAccuracy的电池

时间:2012-03-31 11:54:24

标签: iphone localization power-management

我正在开发一个在后台运行的本地化应用程序。

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

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

我想知道,将此方法与desiredAccuracydistanceFilter相结合会产生什么影响?

它是否仍然不准确且对电池友好?

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

由于

2 个答案:

答案 0 :(得分:0)

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

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

第一个用于startMonitoringSignificantLocationChanges,第二个用于[locationManager startUpdatingLocation]。以下是我的意思:您的主startMonitoringSignificantLocationChanges以及您不时选择如何进行操作当您获得第一个GPS位置坐标时,您可以立即拨打第二locationManager[locationManager startUpdatingLocation] [locationManager stopUpdatingLocation] 1}}。这种方法可以节省能源,并且您可以获得一些desiredAccuracy GPS坐标。只需制作一些个人逻辑来处理来自女巫locationManager以及何时开始和停止GPS。

希望你理解我的逻辑,否则我会写一些代码。现在我不在我的手上。

答案 1 :(得分:0)

documentation for startMonitoringSignificantLocationChanges州:

  

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

据我所知,现在有办法告诉位置经理将desiredAccuracy用于startMonitoringSignificantLocationChanges,从而制定了这种方法的节能特性,可用于“在后台运行。