BackgroundAgent WP 7.5中的GeoCoordinateWatcher

时间:2013-04-07 10:59:47

标签: c# windows-phone-7 background-agents

如果我理解,我想问你。当我在BackgroundAgent的方法OnInvoke中创建GeoCoordinateWathcer时,如下所示:

protected override void OnInvoke(ScheduledTask task)
{
    _watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High)
                   {
                       MovementThreshold = 100
                   };
    _watcher.PositionChanged += PositionChanged;
    _watcher.Start();
}

我移动超过100米并且将调用Task,因此PositionChanged不记得我之前的位置。这是真的吗?然后PositionChanged事件在BackgroundAgent中没有意义,或者?如果我想每100米升级我的位置,我必须保存以前的位置并使用例如前一个和当前位置的Haversine公式计算距离? 谢谢你。

1 个答案:

答案 0 :(得分:0)

我认为你提到的情况是你不应该担心的重要事项。

GeoCoordinateWatcher对后台代理的使用有更严重的限制。

Unsupported APIs for background agents for Windows Phone

  

GeoCoordinateWatcher

     

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

在Windows Phone 8中,您可以在后台运行位置跟踪应用程序以绕过该限制:Running location-tracking apps in the background for Windows Phone 8,但是,它不适用于Windows Phone 7.5。