GeolocationAccessStatus change event does not raise

I am developing a mobile application for Windows using the Windows 10 SDK (build 10586) and I need to subscribe to the StatusChanged event for Geolocator.

The problem is that when disabling geolocation using the menu "Settings"> "Location" my OnStatusChanged method is not called.

    public async Task StartTracking()
    {
        // Request permission to access location
        var accessStatus = await Geolocator.RequestAccessAsync();

        switch (accessStatus)
        {
            case GeolocationAccessStatus.Allowed:
                _geolocator = new Geolocator
                {
                    ReportInterval = 2000,
                    MovementThreshold = 10d,
                    DesiredAccuracyInMeters = 10,
                    DesiredAccuracy = PositionAccuracy.High
                };
                _geolocator.PositionChanged += OnPositionChanged;
                _geolocator.StatusChanged += OnStatusChanged;
                break;

            case GeolocationAccessStatus.Denied:
                Messenger.Default.Send(new GeolocationDeniedAccessMessage(true));
                break;

            case GeolocationAccessStatus.Unspecified:
                Messenger.Default.Send(new GeolocationDeniedAccessMessage(true));
                break;
        }
    }

    private void OnStatusChanged(Geolocator sender, StatusChangedEventArgs e)
    {
        switch (e.Status)
        {
            case PositionStatus.Ready:
                Messenger.Default.Send(new GeolocationAvailabilityMessage(true));
                Messenger.Default.Send(new GeolocationDeniedAccessMessage(false));
                break;

            case PositionStatus.Initializing:
                break;

            case PositionStatus.NoData:
                Messenger.Default.Send(new GeolocationAvailabilityMessage(false));
                break;

            case PositionStatus.Disabled:
                Messenger.Default.Send(new GeolocationDeniedAccessMessage(true));
                break;

            case PositionStatus.NotInitialized:
                break;

            case PositionStatus.NotAvailable:
                Messenger.Default.Send(new GeolocationAvailabilityMessage(false));
                break;
        }
    }
+4
source share
2 answers

UPDATE

EventHandler. , StartTracking(), GeolocationAccessStatus "", EventHandler , OnStatusChanged , . Geolocator <<26 >


, Location package.appxmanifest.

enter image description here

+2

, Windows 10.

" " β†’ "" β†’ "" , "" "".

0

Source: https://habr.com/ru/post/1626915/


All Articles