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");
};