【发布时间】:2016-04-19 17:59:42
【问题描述】:
我工作的公司有一个由我们的现场工作人员使用的应用程序,它定期注册他们的 GPS 位置,我们最初使用 System.Device.Location GeoCoordinateWatcher 类为 Windows 8 x86 编写了该应用程序。
在 Windows 10 中,相同的代码无法正常运行,GeoCoordinateWatcher.Permission 返回 Granted,但每次调用我们仍会收到未知位置。 Windows 8 和 Windows 10 平板电脑都支持 LTE。
Public Function GetLocation() As GeoCoordinate
Dim geoCoordinate As GeoCoordinate
Dim watcher As GeoCoordinateWatcher
watcher = New GeoCoordinateWatcher(GeoPositionAccuracy.High)
watcher.TryStart(False, TimeSpan.FromMilliseconds(15000))
LogToFile("Position Permission: " & watcher.Permission.ToString)
LogToFile("Watcher Status: " & watcher.Status.ToString)
geoCoordinate = watcher.Position.Location
If geoCoordinate.IsUnknown Then
LogToFile("Unknown")
Else
LogToFile(String.Format("Lat: {0}, Long: {1}, H Accuracy: {2}, V Accuracy: {3}, Crse: {4}, Spd: {5}, Alt: {6}", geoCoordinate.Latitude, geoCoordinate.Longitude, geoCoordinate.HorizontalAccuracy, geoCoordinate.VerticalAccuracy, geoCoordinate.Course, geoCoordinate.Speed, geoCoordinate.Altitude))
End If
Return geoCoordinate
End Function
我们的日志文件显示我们获得许可的每个调用,混合状态 = NoData 或 Initializing,并且位置始终未知。
我们确实在平板电脑上收到应用程序正在访问位置信息的通知,并且我可以确认 GPS 确实在工作,因为内置地图应用程序正确显示了当前 GPS 位置。
是否有人对尝试解决正在发生的事情有什么建议?
【问题讨论】:
标签: vb.net gps location windows-10-desktop