如何在后台更新Windows Phone中的位置数据?

Mar*_*eIV 1 location background-process windows-phone-7 background-agents

我刚刚看到,虽然Windows Phone 7.5后台任务可以轮询某个位置,但它们实际上并不是从GPS实时轮询,而是位置API调用返回系统缓存位置,该位置仅每15分钟更新一次.

当然,这种限制完全无效导致在后台运行导航的任何尝试,因为你可以在十五分钟内远离偏离轨道,更不用说后台任务只能每三十分钟左右运行一次!

尽管如此,诺基亚的导航软件,据说透过Runtastic的应用也继续在后台运行跟踪(即不只是在锁屏),无一不是在市场这意味着他们已被批准,所以没有人知道他们是如何做的SDK据说不支持?

作为参考,我们实际上并不需要实时跟踪...可能只需要一次,但我们不需要那么多准确度......也许需要100英尺左右...但我们确实需要比我们更多被给予了.我们只是不知道他们是如何在批准的应用程序中这样做的.

MrM*_*son 5

您只能在PeriodicTask执行时检索位置(大约每隔约30分钟,具体取决于操作系统调度).它从中获取的位置数据GeoCoordinateWatcher将来自操作系统的缓存,而不是直接来自GPS硬件.如果没有运行,操作系统将大约每15分钟用粗粒度数据更新一次.但是,如果某个应用程序已执行并检索到细粒度的GPS硬件数据,那么您将检索到的数据将是您的数据PeriodicTask.您可以通过访问前台应用程序中的GPS并强制安排PeriodicTask使用来查看此示例ScheduledActionService.LaunchForTest.

  • 这基本上就是我所领导的.您刚刚添加了关于更新缓存的另一个应用程序的位,但除此之外,*my*background任务仍然只访问缓存数据.实际上,您可以使用繁重的后台任务,每十分钟运行一次.但同样,如果可以做到,那仍然无法回答这个问题.它当然可以像诺基亚有一个导航应用程序,他们不是第一方(广泛的实时瓷砖),但再次,也许他们有独家访问我们其余的人不要感谢他们的MS伙伴关系,这将是一个遗憾. (2认同)
  • 我认为"繁重的背景任务"你的意思是"ResourceIntensiveTask"?如果是这样的话,我没有看到他们可以每隔10分钟运行一次,而是可以运行**最多**10分钟.但是考虑到其他限制(必须有电源,WiFi,> 90%电池,屏幕锁定.参考:http://msdn.microsoft.com/en-us/library/hh202942(v=vs.92). aspx)我怀疑它对你有用.长话短说:标准SDK似乎无法直接询问您的内容.您可能需要查看互操作(参考:http://forum.xda-developers.com/showthread.php?t = 1299134),但...... (2认同)
  • 再说一遍,是的!查看诺基亚的GPS应用程序!它做到了.显然,一个名为Runtastic的应用程序也是如此(而Runkeeper则没有.)问题是如何.如果MS没有向我们提供,那么他们又怎么会抱怨他们的平台没有足够的支持. (2认同)