Windows Phone 8 地理定位器无法设置所需的精度 = 高 AND 绑定到位置更改事件



background:我精通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;
    }

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

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

最新更新