Ios 没有互联网,没有位置坐标,有重要的位置监控

Ios 没有互联网,没有位置坐标,有重要的位置监控,ios,iphone,swift,gps,core-location,Ios,Iphone,Swift,Gps,Core Location,我试图在swift iOS中记录背景中的位置坐标。 当应用程序进入后台时,我使用startMonitoringSignificantLocationChanges,当它进入前台时,我使用stopMonitoringSignificantLocationChanges()和startUpdatingLocation()。 我已在finishLaunching中正确实例化了位置管理器。 当iPhone连接到互联网时,一切似乎都很好,但由于某种原因,当没有互联网可用时,我似乎没有获得任何位置坐标,也没

我试图在swift iOS中记录背景中的位置坐标。 当应用程序进入后台时,我使用
startMonitoringSignificantLocationChanges
,当它进入前台时,我使用
stopMonitoringSignificantLocationChanges()
startUpdatingLocation()
。 我已在
finishLaunching
中正确实例化了位置管理器。 当iPhone连接到互联网时,一切似乎都很好,但由于某种原因,当没有互联网可用时,我似乎没有获得任何位置坐标,也没有呼叫
didwealwitherror

在前台,它至少会给出错误:
error Domain=kclerordomain code=0“操作无法完成。(kclerordomain error 0.)”

但在我行驶30公里时,它甚至没有给出错误

为了调试的目的,我使用本地通知在回调到didFailWithError和didUpdateLocations时通知我

使用主动互联网连接,即使应用程序被关闭或在后台,它也能正常工作,但当我在没有wifi或手机数据的情况下尝试同样的方法时,我似乎根本没有得到响应。如何处理GPS设置和监测用户的位置,因为我希望它在后台自行排序。对这种行为有什么解释吗。如果没有互联网,我需要离线行为


感谢苹果的文档:

确定区域监控的可用性

在尝试监视任何区域之前,您的应用程序应检查 当前设备是否支持区域监视。这是 区域监控可能不可用的一些原因:

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

您遇到的问题与“”文档部分的摘录一致。

尝试通过禁用WiFi和手机数据来更改您的测试。

您是否通过将设备置于飞机模式来禁用internet连接?您是否在使用GSM的国家/地区?是的,我想。@Andrea是的,为了调试,我正在关闭/打开飞机模式,以欺骗iPhone相信手机网络发生了变化。我注意到的另一件事是,在我打开wifi之前,应用程序不会像在重要位置一样从死机重新启动。谢谢@andrea,但我不会使用区域监控。为了进行调试,我将在飞机模式下关闭/开启几秒钟,这给iPhone留下了手机发射塔已经改变的印象,它应该给location manager代表回叫,但当设备未连接到互联网或wifi时,不会回叫。我认为重要监控的理想行为是,当信号塔发生变化时,它应该唤醒GPS,如果无法获得位置,它应该呼叫didFailWitherror,但这并没有发生。然而,对于蜂窝数据,它会回调,以便在后台正确委派。再次感谢。也许我错了,但我认为区域监控是重要位置变化的密切来源。我也对GPS工作持怀疑态度,这种功能是用来避免电池耗电的。:)谢谢你说得对,它们在节省电池方面很好。是否有任何解释表明,由于我的应用程序在未连接到互联网的情况下会有一段时间存在,因此,重要位置不会在没有互联网或手机的情况下对代表进行任何回调,如果无法从GPS获取位置,则至少应呼叫didFailwithError,但事实并非如此。