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