gpt4 book ai didi

iOS 9 延迟位置更新不起作用

转载 作者:可可西里 更新时间:2023-11-01 04:56:45 25 4
gpt4 key购买 nike

您好,最近发布了 iOS 9 GM 种子版本,我发现位置更新(allowDeferredLocationUpdatesUntilTraveled:timeout:) 没有延迟。我收到错误 kCLErrorDeferredFailed - 位置管理器由于未知原因未进入延迟模式。

由于这个错误,它根本没有进入延迟模式,并且位置更新不断触发。相同的代码曾经在 iOS 8.4 及以下版本中工作。它大大耗尽了我设备的电池。对于 iOS 9,我们是否需要明确设置或提及任何内容。未从 Apple 文档中找到任何内容?

  -(void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {

if (!self.deferringUpdates) {

[self.locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocationDistanceMax timeout:30];
self.deferringUpdates = YES;
}
}

-(void)locationManager:(CLLocationManager *)manager
didFinishDeferredUpdatesWithError:(NSError *)error {
// Stop deferring updates
self.deferringUpdates = NO;

}

我还设置了 allowsBackgroundLocationUpdates 属性,但即便如此也无济于事。

      self.locationManager.allowsBackgroundLocationUpdates=YES;

在 iOS 9 及更高版本中,无论部署目标如何,您还必须将位置管理器对象的 allowsBackgroundLocationUpdates 属性设置为 YES 才能接收后台位置更新。默认情况下,此属性为 NO,并且应保持此状态,直到您的应用主动要求后台位置更新。

Reduce Location Accuracy and Duration

请让我知道我还需要做什么

谢谢

最佳答案

请阅读discussion在 API 引用页面上。

如前所述,有几件事要尝试 here

  • 关闭多任务栏中的所有应用
  • 验证没有其他应用正在使用定位服务
  • 从调试器和 MacBook 上拔下设备(通过将 didUpdateLocations 记录到文件中验证它是否仍在接收调用)
  • 确保设备支持延迟更新
  • 确保 distanceFilter 为 None,desiredAccuracy 为 Best

关于iOS 9 延迟位置更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com