startMonitoringSignificantLocationChanges用于传递位置

时间:2017-01-30 17:13:01

标签: ios swift gps core-location

我想知道startmonitoringsignificantlocationchanges用于提供位置的是什么,是GPS还是Wifi / Internet?我的理解是它使用蜂窝或wifi,知道设备是否已显着移动但我不知道的是,在选择位置时它是否仅使用GPS来获取位置。

我的调查结果是:我在城市列车行驶了30公里,但没有在后台找到任何地点,在此旅途中我的Wifi和移动电话数据已关闭。因此,请告知“重要”是否无法仅提供基于GPS的位置。

3 个答案:

答案 0 :(得分:1)

过去构建位置应用程序,我认为GPS仅在调用startUpdatingLocation()时使用。在仔细检查文档之后,Apple没有明确说明significantLocationChanges是否可以使用GPS,但它是一种节能选项,并且他们的文档指出它“需要蜂窝硬件的存在”,这让我非常肯定我的假设(和你的)是正确的。我会留下一点,如果有一位硬件专家肯定知道的话。您想要的文档:https://developer.apple.com/reference/corelocation/cllocationmanager

答案 1 :(得分:0)

与所有位置功能一样,它使用单元格,wifi和GPS的组合。使用cell是 primary 。我们的想法是尽量减少使用GPS,以防止电池耗尽。

你当然不能指望这与关闭的细胞一起工作;实际上,如果您的代码在关闭单元格的情况下正确地检查significantLocationChangeMonitoringAvailable,我会直观地期望答案为false

(另请注意,除非您的位置经理有代表,否则您不会收到任何活动。)

答案 2 :(得分:0)

如本回答“Hows does Significant Location Change work?”(以及2013-2015的WWDC视频)中所述,重要的位置变更监控使用了一种名为Cell Tower Triangulation的技术。

您可以将其视为与GPS三角测量几乎相同的机制,除了蜂窝硬件将用于测量距离附近蜂窝塔的距离,而不是发射GPS硬件以从实际卫星获取信号。

根据我的经验,我注意到这种方法可以提供近似的准确度。千米。它不使用GPS硬件,因此电池效率更高。它适用于粗略的位置更新。请参阅WWDC 2013会话Harnessing iOS to Create Magic in Your Apps,其中演示者提及此技术的传递参考。