Geolocator PositionChanged事件未为获取当前位置而激发



我正在尝试获取WinRT应用程序的当前位置。但PositionChanged事件永远不会被触发。非常感谢您的帮助!

在Package.appxmanifest中,我启用了Location。我的代码如下:-

Geolocator geolocator = new Geolocator { ReportInterval = 2000 };
geolocator.DesiredAccuracyInMeters = 100;  // specify your range
geolocator.PositionChanged += OnPositionChanged;
private async void OnPositionChanged(Geolocator sender, PositionChangedEventArgs e)
{
if (this.previousLocationState == LocationStates.PopupEmpty && (viewModel.Coordinate == null || viewModel.Coordinate.Latitude != prevGpsCoordinate.Latitude || viewModel.Coordinate.Longitude != prevGpsCoordinate.Longitude))
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
this.viewModel.Coordinate = new GpsCoordinate { Latitude = e.Position.Coordinate.Point.Position.Latitude, Longitude = e.Position.Coordinate.Point.Position.Longitude };
Field.GpsCoordinate gpsCoord = new Field.GpsCoordinate { Latitude = viewModel.Coordinate.Latitude, Longitude = viewModel.Coordinate.Longitude };
CreateMapPin(gpsCoord);
prevGpsCoordinate = this.viewModel.Coordinate;
});
}
}

我认为您需要这样做:

await Geolocator.RequestAccessAsync();
Geolocator geolocator = new Geolocator { ReportInterval = 2000 };
geolocator.DesiredAccuracyInMeters = 100;  // specify your range
geolocator.PositionChanged += OnPositionChanged;
await geolocator.GetGeopositionAsync();

把它作为一个答案,因为我不能在评论中发布代码。

我把这段代码放在Package.appxmanifest 中就可以了

<DeviceCapability Name="location" />

最新更新