Отслеживание пользователя с закрытым приложением (Xamarin.Формы) — 2021

#c# #xamarin #xamarin.forms #geolocation

Вопрос:

Я разрабатываю приложение для защиты с помощью Xamarin.Формы.

Я застрял в поиске способа отслеживать положение пользователя, когда приложение закрыто (полностью закрыто) в iOS и Android.

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

Кто-нибудь может подсказать мне идею? Я буду ОЧЕНЬ благодарен.

Кстати: Мне не нужно все время знать точное положение. Просто в некоторых обстоятельствах, например, при нападении террористов, мне нужно было бы знать точное местоположение пользователя.

Ответ №1:

Вы можете использовать Xamarin.Основы, которые предлагают класс геолокации, предоставляющий API для получения текущих координат геолокации устройства.

Чтобы узнать местоположение, вы можете использовать такой код, как:

   CancellationTokenSource cts;

async Task GetCurrentLocation()
{
    try
    {
        var request = new GeolocationRequest(GeolocationAccuracy.Medium, TimeSpan.FromSeconds(10));
        cts = new CancellationTokenSource();
        var location = await Geolocation.GetLocationAsync(request, cts.Token);

        if (location != null)
        {
            Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
        }
    }
    catch (FeatureNotSupportedException fnsEx)
    {
        // Handle not supported on device exception
    }
    catch (FeatureNotEnabledException fneEx)
    {
        // Handle not enabled on device exception
    }
    catch (PermissionException pEx)
    {
        // Handle permission exception
    }
    catch (Exception ex)
    {
        // Unable to get location
    }
}
 

Для получения дополнительной информации вы можете обратиться к этой статье.Геолокация

Комментарии:

1. Привет, Адрейн. Я ценю ваш ответ, но проблема в следующем: как позвонить в службу геолокации, чтобы получить геопозицию и отправить ее на сервер с закрытым приложением.

2. Я вижу, вы можете увидеть этот документ, который касается диспетчера заданий docs.microsoft.com/en-us/xamarin/android/platform/…