在我的Windows Phone 8应用程序中,我试图在主页上使用GetGeopositionAsync来根据用户位置显示一些项目。GetGeopositionAsync不返回
调用GetGeopositionAsync不会在指定的超时内返回,它根本不会返回。
我使用的代码很简单:
Geolocator geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 50;
Geoposition geoposition = null;
try
{
geoposition = await geolocator.GetGeopositionAsync(
maximumAge: TimeSpan.FromMinutes(5),
timeout: TimeSpan.FromSeconds(10));
}
catch (UnauthorizedAccessException ex)
{
// location services disabled or other error
// user should setup his location
}
我能找到的解决方案是创建GeoCoordinateWatcher异步包装,这似乎是工作的罚款。 但我对自己的解决方案不太自信,我宁愿使用GetGeopositionAsync,它看起来像是在WP8中获取设备位置的推荐方式。
UPDATE:其他人都报告相同的行为: http://social.msdn.microsoft.com/forums/en-us/wpdevelop/thread/ff166fac-b423-4428-abd8-610bf0102fc0
命名变量“IsBusy”始终是创造僵局的好方法。我们无法看到您使用它的其他位置。 – 2013-02-26 03:17:16
请忽略。我在等待和catch子句之后放置了断点,并且都没有到达 – 2013-02-26 03:18:48
您是否在呼叫堆栈上进一步呼叫了“Wait”或“Result”? – 2013-06-11 03:04:44