有没有办法让 CLLocationManager 进入“空闲”而不是“停止”?

Posted

技术标签:

【中文标题】有没有办法让 CLLocationManager 进入“空闲”而不是“停止”?【英文标题】:Is there a way to put CLLocationManager into "idle" but not "stopped"? 【发布时间】:2011-05-04 10:45:30 【问题描述】:

我正在做一个跟踪应用,它可以在后台从 CLLocationManager 获取位置,这带来了在用户不知情的情况下吃电池的危险,所以我想尽可能节省电池。

当有足够的卫星提供 GPS 位置时,我希望应用程序“主动”跟踪(使用locationManager.distanceFilter = 10;),但当用户在室内(无法从卫星获取 GPS 位置)或不移动时“空闲” (即使有卫星覆盖)。

问题是如何做“空闲”。 [locationManager stopUpdatingLocation]; 将完全停止检查位置更新,然后不知道何时切换到“主动”跟踪。

请问有人给点提示吗?谢谢。

【问题讨论】:

Java、Objective-C?这是什么鬼? 我已删除 objC 标签并添加 iphone one... 【参考方案1】:

你看过:CLLocationManager

- (void)startMonitoringSignificantLocationChanges

或者可能

- (void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy

【讨论】:

以上是关于有没有办法让 CLLocationManager 进入“空闲”而不是“停止”?的主要内容,如果未能解决你的问题,请参考以下文章

CLLocationManager 的委托函数“didRangeBeacon”没有找到任何信标?

CLLocationManager 和 tvOS - RequestWhenInUseAuthorization() 不提示

如何在 iOS 中使定位更准确?

CLLocationManager:没有调用 didChangeAuthorization 和 didRangeBeacons

CLLocationManager 委托方法 didUpdateToLocation 没有被调用

CLLocationManager 是不是可以在没有互联网/蜂窝连接的情况下工作?