Я получаю сообщение об ошибке исключения: System.Threading.Tasks.TaskCanceledException
при попытке получить некоторую информацию о геолокации с помощью Plugin.Geolocator.
вот исключение, которое я получаю: System.Threading.Tasks.TaskCanceledException: задача была отменена.
в Plugin.Geolocator.GeolocatorImplementation.GetPositionAsync (System.Nullable 1[T] timeout, System.Nullable
1 [T] cancelToken, System.Boolean includeHeading) [0x004d3] в: 0
в interface_test.MainPage.CreateMainPageAsync () [0x0018b] в /Users/khalidharkati/Projects/interface_test/interface_test/MainPage.xaml.cs:140
в interface_test.App.OnStart () [0x0001a] в /Users/khalidharkati/Projects/interface_test/interface_test/App.xaml.cs:23
в System.Runtime.CompilerServices.AsyncMethodBuilderCore + <> c.b__6_0 (состояние System.Object) [0x00000] в <58604b4522f748968296166e317b04b4>: 0
в Android.App.SyncContext + <> c__DisplayClass2_0.b__0 () [0x00000] в <788a34f7a7b84486905dfde786529d42>: 0
в Java.Lang.Thread + RunnableImplementor.Run () [0x00008] в <788a34f7a7b84486905dfde786529d42>: 0
в Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00009] в <788a34f7a7b84486905dfde786529d42>: 0
at at (динамический метод-обертка) Android.Runtime.DynamicMethodNameCounter.40 (intptr, intptr)
Чтобы иметь возможность использовать асинхронный конструктор, я создал его с позицией в качестве аргумента:
public MainPage(Plugin.Geolocator.Abstractions.Position position)
{
...
}
Затем я добавил этот метод, чтобы получить свою позицию:
public static async Task<MainPage> CreateMainPageAsync()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));
MainPage page = new MainPage(position);
return page;
}
В файле app.xaml.cs я добавил этот код в метод OnStart()
:
protected override async void OnStart()
{
interface_test.MainPage main = await interface_test.MainPage.CreateMainPageAsync();
MainPage = main;
}
PS: перед тем, как обновить некоторые компоненты, Xamarin и некоторые пакеты, я начинаю получать эту ошибку.