ScheduledAgent和GeoCoordinateWatcher - 如何使它们工作?

时间:2011-09-24 22:12:00

标签: windows-phone-7

我正试图通过在ScheduledAgent中运行的GeoCoordinateWatcher获得GPS位置。不幸的是,我得到的位置是一些旧的,在应用程序运行时记录。如何获取ScheduledAgent中的当前(最新)位置?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。不幸的是,这是根据WP7.1 API

的预期行为

根据文档,“此API用于获取设备的地理坐标,支持在后台代理中使用,但它使用缓存的位置值而不是实时数据。缓存的位置值已更新通过设备每15分钟一次。“

http://msdn.microsoft.com/en-us/library/hh202962(v=VS.92).aspx

答案 1 :(得分:-2)

My 2 Centlys。

可能是因为GeoCoordinateWatcher需要一些时间(2秒左右)才能获得新的坐标值并锁定GPS或Cellular Mast或Wifi等等。并且在此期间它会给你最后记录的位置。

因此,尝试挂钩以下事件

 watcher.StatusChanged += new EventHandler< GeoPositionStatusChangedEventArgs>(watcher_StatusChanged);

 watcher.PositionChanged += new EventHandler< GeoPositionChangedEventArgs< GeoCoordinate>>(watcher_PositionChanged);

其中watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);

并调用NotifyComplete();在你的“watcher_PositionChanged”事件处理程序中。