我正试图通过在ScheduledAgent中运行的GeoCoordinateWatcher获得GPS位置。不幸的是,我得到的位置是一些旧的,在应用程序运行时记录。如何获取ScheduledAgent中的当前(最新)位置?
答案 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”事件处理程序中。