iphone - 使用 startMonitoringSignificantLocationChanges 和 desiredAccuracy 的电池

Posted

技术标签:

【中文标题】iphone - 使用 startMonitoringSignificantLocationChanges 和 desiredAccuracy 的电池【英文标题】:iphone - Battery using startMonitoringSignificantLocationChanges and desiredAccuracy 【发布时间】:2012-03-31 11:54:24 【问题描述】:

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

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

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

我想知道,这种方法与desiredAccuracydistanceFilter结合会产生什么效果?

它仍然会不准确且对电池友好吗?

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

谢谢

【问题讨论】:

【参考方案1】:

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

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

startMonitoringSignificantLocationChanges 的第一个,[locationManager startUpdatingLocation] 的第二个。这就是我的意思:您的主要startMonitoringSignificantLocationChanges 和不时您选择的方法调用第二个locationManager[locationManager startUpdatingLocation],当您获得第一个GPS 位置坐标时,您调用[locationManager stopUpdatingLocation]。这种方法是节能的,你会收到一些desiredAccuracy GPS 坐标。只需从女巫locationManager 的到来以及何时启动和停止 GPS 中处理一些个人逻辑即可。

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

【讨论】:

【参考方案2】:

documentation for startMonitoringSignificantLocationChanges 声明:

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

据我所知,现在有办法告诉位置管理器将desiredAccuracy 用于startMonitoringSignificantLocationChanges,从而降低了这种方法的节能特性,可用于在后台“运行”的应用程序.

【讨论】:

以上是关于iphone - 使用 startMonitoringSignificantLocationChanges 和 desiredAccuracy 的电池的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:如何使用 AVAudioPlayer 检测 Iphone/Ipod 音量级别

更新为 iPhone 5 制作的 XIB 以与 iPhone 6 和 iPhone 6 Plus 一起使用

iPhone新手:可以在iPhone上使用NFC吗?

Iphone - 不推荐使用的功能......他们会让iphone崩溃吗?

如何使用 node.js 和 socket.io 将文件从 iPhone 发送到另一台 iPhone?

为 iPhone 4 和 iPhone 5 使用两个不同的 nib 文件