问题描述
|
我正在尝试创建一个类似于TravAlert的应用程序,该应用程序显然会定期“ ping” GPS以找出您所在的位置。不幸的是,我花了一些时间来弄清楚该怎么做。
我无法使用NSTimer来触发GPS检查,因为NSTimer不在后台运行(此应用程序可能必须在后台运行)。我不能将“本地”或“推送”通知用作“计时器”,因为它们会自动附带通知,并且我不想让用户每次都知道GPS的查询情况。
我也尝试过使用CoreLocation的startMonitoringSignificantLocationChanges,并且在一定程度上可以正常工作,但是我只能看到用户恰好在小区服务质量差的区域的情况(显然,startMonitoringSignificantLocationChanges使用塔形三角测量法来确定位置)因此该应用无法启动。
知道TravAlert是如何做到的吗?
谢谢!
附言我并不想通过开发更好的应用来摆脱TravAlert的麻烦-这是针对大学班的,不幸的是,我的教授或班上其他任何人都没有关于如何复制TravAlert的GPS“ ping”的最模糊的想法\”。
解决方法
startMonitoringSignificantLocationChanges
是您的应用程序的正确选择。您可以在应用运行时获得更详细的位置信息。另一个在后台运行GPS的选项旨在用于因功耗高而挂在汽车上的导航应用。