系统设备位置不工作

我有使用在Windows电脑中findsystem.device.location API的代码。 这应该是相当直接的代码

var watcher = new GeoCoordinateWatcher(); watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs< GeoCoordinate>>(GeoPositionChanged); watcher.Start(); var coord = watcher.Position.Location; 

我的意思是我所需要做的就是启动一个地理监视器,然后阅读位置。 但它只返回“位置未知”,我想知道是否有问题的代码,或者如果有什么需要安装在电脑上,或什么。 我已经尝试了几个窗口7个电脑和1个窗口10个电脑,并在设置中打开了共享位置。 那么这个代码有什么问题呢? 如果这有什么不同,这也是geopositionchanged的代码。

  private static void GeoPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { MessageBox.Show("The current location is: " + e.Position.Location.Latitude + "/" + e.Position.Location.Longitude + "."); } 

等待位置服务准备就绪。 你的GeoCoordinateWatcher有一个状态改变的事件和另一个位置改变的事件。

  GeoCoordinateWatcher _watcher; public Class1() { _watcher = new GeoCoordinateWatcher(); _watcher.StatusChanged += Watcher_StatusChanged; _watcher.PositionChanged += GeoPositionChanged; _watcher.Start(); var coord = _watcher.Position.Location; } private void Watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e) { if (e.Status == GeoPositionStatus.Ready) { MessageBox.Show("Watcher is ready. First location: The current location is: " + _watcher.Position.Location.Latitude + "/" + _watcher.Position.Location.Longitude + "."); } } private static void GeoPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { MessageBox.Show("The current location is: " + e.Position.Location.Latitude + "/" + e.Position.Location.Longitude + "."); }