我们使用重要位置变化监控来了解应用未运行时用户的行踪。该数据基于蜂窝塔信号,因此不是非常准确。我们希望在可能的情况下,即应用程序处于活动状态或在后台运行时使用更准确的数据。
问题是,我应该同时使用“startMonitoringSignificantLocationChanges”和“startUpdatingLocation”,还是应该在这两种方法之间切换?如果第二个选项更好,我应该使用哪些app delegate事件来执行必要的切换?
答案 0 :(得分:3)
除非您想要支持需要连续高精度位置流的功能,否则最好避免始终通过startUpdatingLocation
使用高精度GPS数据。
我从您的问题中了解到,当您的应用被唤醒时,您打算仅在特定兴趣点使用更准确的位置。在这种情况下,仅在需要时接通更准确的位置数据的第二种方法是更好的主意。
在你的locationManager(_:didUpdateLocations:)
代表中,{p> CLLocationManager
将是一个很好的开始,在你的情况下。请记住,重要的位置更改监控API至少每15分钟唤醒一次系统,即使没有位置更改,也要明确停止。所以必须小心使用它。
确保准确的位置跟踪,同时确保您不会吃掉所有手机电池,这是一个非常重要的问题。您可能希望提供第三方SDK,例如Hypertrack,专门研究这个,尝试。