При использовании GetPositionAsync Geolocator обнаружено исключение - PullRequest
0 голосов
/ 27 мая 2019

Я получаю сообщение об ошибке исключения: 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 и некоторые пакеты, я начинаю получать эту ошибку.

1 Ответ

0 голосов
/ 28 мая 2019

Я решил, на самом деле, это может звучать глупо, но я просто забыл включить GPS на своем телефоне. это все.

...