在使用 Xamarin.Mobile.Geolocator 时,我遇到了一个奇怪的错误,似乎阻止我解决任务。例如:
var locator = new Geolocator ();
if (locator.IsGeolocationAvailable) {
Console.WriteLine ("Location Available");
var task = locator.GetPositionAsync (10000);
Console.WriteLine ("Task Created");
var position = task.Result;
Console.WriteLine ("Position Status: {0}", position.Timestamp);
Console.WriteLine ("Position Latitude: {0}", position.Latitude);
Console.WriteLine ("Position Longitude: {0}", position.Longitude);
} else {
Console.WriteLine ("newp");
}
此函数最终在 task.Result 上超时。我试图通过设置info.plist
NSLocationAlwaysUsageDescription
和NSLocationWhenInUseUsageDescription
参数来调试它,将其更改为.ContinueWith
lambda,在模拟器和实际设备上进行测试,将超时设置为 100 秒,但它似乎总是在超时时崩溃。
这是我的实现问题还是 Xamarin.Mobile 中的错误?我想继续使用 Xamarin.Mobile,但我不反对恢复到本机实现。
谢谢