Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone 8地理定位器可以';t设置所需精度=高,并连接到位置更改事件_C#_.net_Windows Phone 8_Geolocation_Abort - Fatal编程技术网

C# Windows Phone 8地理定位器可以';t设置所需精度=高,并连接到位置更改事件

C# Windows Phone 8地理定位器可以';t设置所需精度=高,并连接到位置更改事件,c#,.net,windows-phone-8,geolocation,abort,C#,.net,Windows Phone 8,Geolocation,Abort,背景:我精通WPF/XAML,但对WindowsPhone8还是新手 希望我错过了一些愚蠢的东西 我希望精度高,但我也希望挂接到PositionChanged事件中 当以下代码达到_GeoLocator.DesiredAccuracy=位置精度。高;它抛出一个中止。如果它关闭,一切正常,但我真的想要高精度 这两者似乎是相互排斥的 错误消息为:操作已中止(HRESULT异常:0x80004004(E_中止))。我启用了定位功能 违规代码示例: public MainPage() {

背景:我精通WPF/XAML,但对WindowsPhone8还是新手

希望我错过了一些愚蠢的东西

我希望精度高,但我也希望挂接到PositionChanged事件中

当以下代码达到_GeoLocator.DesiredAccuracy=位置精度。高;它抛出一个中止。如果它关闭,一切正常,但我真的想要高精度

这两者似乎是相互排斥的

错误消息为:操作已中止(HRESULT异常:0x80004004(E_中止))。我启用了定位功能

违规代码示例:

    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”

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


谢谢…那是赢家。在发布的(类似问题)链接中:“在获取位置时,不允许更改任何通知参数(MovementThreshold、DesiredAccuracy或ReportInterval)。这包括位置更改(PositionChanged事件)以及获取位置异步(GetPositionAsync)。如果要更改通知参数,则必须取消订阅所有事件和/或等待GetPositionAsync完成,然后进行更改。“谢谢……这是赢家。”。在发布的(类似问题)链接中:“在获取位置时,不允许更改任何通知参数(MovementThreshold、DesiredAccuracy或ReportInterval)。这包括位置更改(PositionChanged事件)以及获取位置异步(GetPositionAsync)。如果要更改通知参数,必须取消订阅所有事件和/或等待GetPositionAsync完成,然后进行更改。“
_GeoLocator.MovementThreshold = 1;
_GeoLocator.DesiredAccuracy = PositionAccuracy.High;
_GeoLocator.PositionChanged += (Geolocator sender, PositionChangedEventArgs args) =>
    {
        //UpdateLocation(args);
        Console.WriteLine("Position Changed");
    };