地理定位器位置更改事件触发的频率过高



我正在将GeoLocator类用于位置感知应用程序,我希望每分钟更新一次位置以节省电池电量。我已经相应地设置了ReportInverval属性,但PositionChanged事件的触发频率要高得多。这是怎么回事?

App.Geolocator = new Geolocator();
App.Geolocator.DesiredAccuracy = PositionAccuracy.High;
App.Geolocator.MovementThreshold = 100; 
App.Geolocator.ReportInterval = 1000*60; //report change every minute
App.Geolocator.PositionChanged += geolocator_PositionChanged;

这应该每分钟给你一个位置,但文档确实说:

如果另一个应用程序请求了更频繁的更新,则通过为 ReportInterval 指定较小的值,您的应用程序接收更新的频率可能会高于请求的频率

找出它不起作用的原因。解决方案是不使用 MovementTreshold,因为它优先于 ReportInterval。

最新更新