allowsBackgroundLocationUpdates仅工作几秒

时间:2016-12-05 20:04:32

标签: ios objective-c core-location

我有一个蓝牙设备,当按下按钮时会在我的应用程序中触发位置服务。并且位置服务确实运行,但仅持续约8秒。我在didUpdateToLocation委托方法中找到了一个N​​SLog输出位置。它仅在8秒内输出NSLog。

当我将应用程序放在前台时,位置服务会再次继续。以下是我初始化位置管理器的方法:

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager requestAlwaysAuthorization];
[self.locationManager requestWhenInUseAuthorization];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[self.locationManager setAllowsBackgroundLocationUpdates:YES];
[self.locationManager allowsBackgroundLocationUpdates];

按下按钮时,我运行:

[self.locationManager startUpdatingLocation];

1 个答案:

答案 0 :(得分:0)

您需要启用后台模式(位置),只要您的位置管理员能够接收位置更新,您的应用就会收到所有蓝牙数据。

正如@ Paulw11在评论中提到的,使用重要位置更新将大大减少电池使用量。

以下是Apple guide的链接。

以下是与question相关的链接,用于在后台获取位置信息。