Как сохранить gps включенным в приложении xamarin форм, даже если приложение находится в спящем режиме или в фоновом режиме? - PullRequest
0 голосов
/ 26 февраля 2020

Есть ли способ сохранить GPS в приложении Xamarin Forms (Android / iOS), даже если приложение находится в спящем режиме или в фоновом режиме? Я использую плагин Geolocator для прослушивания изменений GPS, но он не выполняется, когда приложение находится в спящем режиме. Если я помещаю приложение в фоновом режиме, я вижу, что значок gps в уведомлении не там, поэтому gps не работает в фоновом режиме. Это пример кода, который я использую для получения местоположения GPS:

async Task StartListening()
{
    try
    {
        if (CrossGeolocator.Current.IsListening)
            return;

        await CrossGeolocator.Current.StartListeningAsync(TimeSpan.FromMilliseconds(500), _locationTrackingFrequency, true, new ListenerSettings
        {
            ActivityType = ActivityType.AutomotiveNavigation,
            AllowBackgroundUpdates = true,
            DeferLocationUpdates = true,
            DeferralDistanceMeters = 1,
            DeferralTime = TimeSpan.FromSeconds(1),
            ListenForSignificantChanges = false,
            PauseLocationUpdatesAutomatically = false
        });
        CrossGeolocator.Current.PositionChanged += CrossGeolocator_Current_PositionChanged;

    }
    catch (Exception exception)
    {
        await LogEvents.LogEvent(exception.ToString(), 15);
    }
}

public async void CrossGeolocator_Current_PositionChanged(object sender, PositionEventArgs e)
{
   Device.BeginInvokeOnMainThread(() => { IsBusy = true; });
}

Так что метод CrossGeolocator_Current_PositionChanged не выполняется в фоновом режиме ...

...