没有位置没有互联网的CoordinantLocationMonitoring

时间:2017-01-30 10:56:51

标签: ios iphone swift gps core-location

我正在尝试在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设置和监控用户位置,因为我希望它在背景中自行排序。这种行为有什么解释吗?如果不存在互联网,我需要离线行为。

由于

1 个答案:

答案 0 :(得分:0)

来自Apple文档:

  

确定区域监控的可用性

     

在尝试监控任何地区之前,您的应用应该检查   当前设备是否支持区域监控。这是   可能无法进行区域监测的一些原因:

     

设备没有必要的硬件来支持区域   监控。
  用户拒绝该应用程序授权使用区域   监控。
用户在“设置”应用中禁用了位置服务   用户也在“设置”应用中禁用了“后台应用刷新”   对于设备或您的应用程序。
设备处于飞行模式和   无法启动必要的硬件

您遇到的问题与“Region Monitoring and Ibeacon”文档部分的摘录一致 尝试通过禁用WiFi并禁用手机数据来更改测试。