我们的一个应用程序中的 WinRT Geolocator 有一个奇怪的行为。用户单击应用程序中的按钮以获取当前位置。第一次工作正常,但所有后续单击按钮都会返回相同的坐标,即使我们移动超过一公里也是如此。
该应用程序在 ThinkPad 上运行,我们已经安装了一个名为“GPS Satellite”的应用程序,如果我们切换到这个应用程序,获取一个坐标,然后返回我们的应用程序,那么 Geolocator 会返回正确的坐标。所以我们知道 GPS 工作正常,但似乎坐标保存在缓存中,即使我们已经设置了几毫秒的过期时间。
private async void ExecuteObtenirCoordGPSCommand()
{
try
{
Geolocator geolocator = new Geolocator();
geolocator.DesiredAccuracy = PositionAccuracy.High;
// Make the request for the current position
Geoposition pos = await geolocator.GetGeopositionAsync(new TimeSpan(0,0,0,0,200), new TimeSpan(0,0,5));
Place.Latitude = pos.Coordinate.Latitude;
Place.Longitude = pos.Coordinate.Longitude;
}
catch
{
GPSMsgErreur = "The GPS is unavailable";
}
}
我们尝试过让 GetGeopositionAsync 方法过期,但它并没有解决问题。
我们尝试将 Geolocator var 放在类级别,结果相同。
有任何想法吗?