События LocationCallback не запускаются - PullRequest
0 голосов
/ 18 декабря 2018

В моем проекте Xamarin android создан сервис и подписывайтесь там, чтобы получать обновления от сервиса локации.но это не сработало.Затем я перемещаю эту часть кода прямо в класс деятельности.Но это не работает снова!Я использовал эти методы в Google Android раньше несколько раз.Я не могу определить, в чем здесь проблема.Мой код:

[Service]
class LocationManagementService : Service
{
    ...
    public override void OnStart(Intent intent, int startId)
    {
        locationManagement = new LocationManagement(this);
        locationManagement.StartUpdate();
    }
}

....

class LocationManagement{

    LocationCallBack callBack = new LocationCallBack();
    public void StartUpdate()
    {
        LocationRequest locationRequest = new LocationRequest()
            .SetPriority(LocationRequest.PriorityHighAccuracy)
            .SetInterval(1000 * 5)
            .SetFastestInterval(1000 * 2);
        FusedLocationProviderClient fused = 
        LocationServices.GetFusedLocationProviderClient(context);
        Task.Run(() =>
        {
            fused.RequestLocationUpdatesAsync(locationRequest, callBack);
        });
}

class LocationCallBack: LocationCallback
{
    private Context context;
    public LocationCallBack(Context context)
    {
        this.context = context;
    }

    public override void OnLocationAvailability(LocationAvailability locationAvailability)
    {
        var a = locationAvailability.IsLocationAvailable;
    }

    public override void OnLocationResult(LocationResult result)
    {
        if (result.Locations.Any())
        {
            var location = result.Locations.First();
            var a =  location.Latitude;
        }
        else
        {
            // No locations to work with.
        }
    }
}

Я установил точки останова на события обратного вызова, но ни одно из них не сработало!

Примечание. Когда я изменяю этот код на LocationManager, он работает хорошо.

Какая проблема может быть здесь?

...