gpt4 book ai didi

ios - CoreLocationManager 从不暂停?

转载 作者:行者123 更新时间:2023-12-01 15:23:27 26 4
gpt4 key购买 nike

试图让我的应用程序使用更少的电量,它总是在后台跟踪位置,但我希望它自动暂停,以便我可以打开区域监视,并在用户稍微移动时使用它来恢复精确的位置监视。

我已经打开应用程序半小时了,定位服务没有暂停。我认为自从 Apple 在 iOS 13 中更改位置信息以来一直是这种情况?我不太确定。我可以在网上找到的所有文档似乎都非常过时。

非常感谢任何建议,相关代码如下:

init() {
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.distanceFilter = 10
locationManager.activityType = .fitness
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
locationManager.pausesLocationUpdatesAutomatically = true
locationManager.showsBackgroundLocationIndicator = true
locationManager.startUpdatingLocation()
}
func locationManagerDidPauseLocationUpdates(_ manager: CLLocationManager) {
delegate?.paused(tracker: self)
print("MT | LOCATION SERVICES PAUSED!") <---- NEVER GETTING CALLED (been running for 40 minutes now, no location updates, still going though?)
// if not already, start region monitoring

}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
// Collect data
for location in locations {
print("MT | New Location: \(location)")
}
}

最佳答案

我不会依赖于连接到 Xcode。 Xcode一般是greedy .它不希望您停止调试。所以它永远不会将应用程序置于暂停状态。
locationManagerDidPauseLocationUpdates的回调与 Xcode 阻止的您的应用程序被暂停有些相同。

我测试的方法是使用 os.log .然后将输出记录到 Mac 的控制台应用程序。见 here .

只需确保该应用程序不是从您从 Xcode 运行时启动的。我宁愿断开您的设备与 Xcode 的连接,杀死该应用程序。断开您的设备与 Xcode 的连接。然后只需再次点击应用程序图标。这样 Xcode 就无法干预。

关于ios - CoreLocationManager 从不暂停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60049577/

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