【发布时间】:2017-01-30 10:56:50
【问题描述】:
我正在尝试在 swift iOS 中在后台记录位置坐标。
当应用程序进入后台时,我使用startMonitoringSignificantLocationChanges,当它进入前台时,我使用stopMonitoringSignificantLocationChanges() 和startUpdatingLocation()。
我已经在finishLaunching 中正确地实例化了位置管理器。
当 iPhone 连接到互联网时,一切似乎都很好,但由于某种原因,当没有可用的互联网时,似乎我没有得到任何位置坐标,也没有打电话给 didFailWithError。
在前台时,它至少会给出错误:Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"
但是对于背景,当我行驶 30 公里时它甚至没有给出错误。
出于调试目的,我使用本地通知在回调 didFailWithError 和 didUpdateLocations 时通知我。
通过活跃的互联网连接,即使应用程序被杀死或在后台运行,它也能正常工作,但是当我在没有 wifi 或蜂窝数据的情况下尝试同样的操作时,我似乎根本没有得到响应。如何处理 GPS 设置和监视用户位置,因为我希望它在后台自行排序。这种行为有什么解释吗。如果没有互联网,我需要有离线行为。
谢谢
【问题讨论】:
-
您是否通过将设备置于飞行模式来禁用互联网连接?
-
您在使用 GSM 的国家/地区吗?
-
是的,浅思想。
-
@Andrea 是的,用于调试我正在关闭/打开飞行模式以诱使 iPhone 相信蜂窝网络发生了变化。我注意到的另一件事是应用程序没有从死机重新启动,因为它应该在重要位置,直到我打开 wifi。
标签: ios iphone swift gps core-location