我正在尝试在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设置和监控用户位置,因为我希望它在背景中自行排序。这种行为有什么解释吗?如果不存在互联网,我需要离线行为。
由于
答案 0 :(得分:0)
来自Apple文档:
确定区域监控的可用性
在尝试监控任何地区之前,您的应用应该检查 当前设备是否支持区域监控。这是 可能无法进行区域监测的一些原因:
设备没有必要的硬件来支持区域 监控。
用户拒绝该应用程序授权使用区域 监控。
用户在“设置”应用中禁用了位置服务 用户也在“设置”应用中禁用了“后台应用刷新” 对于设备或您的应用程序。
设备处于飞行模式和 无法启动必要的硬件。
您遇到的问题与“Region Monitoring and Ibeacon”文档部分的摘录一致 尝试通过禁用WiFi并禁用手机数据来更改测试。