1

背景:我精通 WPF/XAML,但对 Windows Phone 8 很陌生。

希望我缺少一些愚蠢的东西......

我希望 DesiredAccuracy 很高,但我也想挂钩 PositionChanged 事件。

当下面的代码达到 _GeoLocator.DesiredAccuracy = PositionAccuracy.High; 它会中止。如果关闭,一切正常,但我真的想要高精度。

两者似乎是相互排斥的。

错误消息是:操作中止(来自 HRESULT 的异常:0x80004004 (E_ABORT))。我启用了位置功能。

违规代码示例:

    public MainPage()
    {
        InitializeComponent();

        _GeoLocator.MovementThreshold = 1;

        _GeoLocator.PositionChanged += (Geolocator sender, PositionChangedEventArgs args) =>
        {
            //UpdateLocation(args);
            Console.WriteLine("Position Changed");
        };

        //THIS WILL THROW...WHY??   IF I COMMENT OFF POSITIONCHANGED ABOVE, IT WORKS FINE.
        _GeoLocator.DesiredAccuracy = PositionAccuracy.High;
    }
4

1 回答 1

4

您必须在“PositionChanged”事件处理程序之前设置“DesiredAccuracy”(类似问题)。

_GeoLocator.MovementThreshold = 1;
_GeoLocator.DesiredAccuracy = PositionAccuracy.High;
_GeoLocator.PositionChanged += (Geolocator sender, PositionChangedEventArgs args) =>
    {
        //UpdateLocation(args);
        Console.WriteLine("Position Changed");
    };
于 2013-10-04T08:18:59.793 回答