Точные (GPS) обновления местоположения остановлены в Android 9 - PullRequest
0 голосов
/ 22 сентября 2019

Это очень старое приложение, использующее GPS, которое работало нормально (до Android 6), но теперь на телефоне с Android 9 не будет предоставлять обновления местоположения GPS - где-то между OS 6 и 9 что-то изменилось(у меня нет 7 или 8, чтобы попробовать).

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

Приложение имеет точные и грубые разрешения в манифесте, телефон, по-видимому, разрешает доступ GPS, и в режиме отладчика он проходит через весь код настройки (без исключений), но никогда не прерывается на onLocationChanged.() обратный вызов:

try {
    LocListener = new GpsLocationListener();
    LocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTimemS, minDistance, LocListener);
    isAvailable = true;

    nmeaListener = new NmeaSentenceListener();
    if (!LocManager.addNmeaListener(nmeaListener))
        nmeaListener = null;

    StListener = new GpsStatusListener();
    if (!LocManager.addGpsStatusListener(StListener))
        StListener = null;

}

catch (Exception e) {
    stop();
}

GpsLocationListener получен из прослушивателя Location.Он получает обновления статуса через OK, но не обновляет местоположение (хотя я также замечаю из обновлений статуса, что спутники не используются в «fix»).

Если я поменяю провайдера на сетевой, тообновления местоположения действительно появляются (но они не будут достаточно точными).

Не могу понять, что здесь произошло.Это был полностью рабочий код (все еще на Android 6), телефон, кажется, разрешает доступ к местоположению для приложения, так что случилось?

STOP PRESS:

Может быть, я говорил слишком рано - думаю, что телефон (Google Pixel) неисправен.

Загрузил несколько тестовых приложений GPS, и ни одно из них не могло исправить ситуацию.Такие вещи, как карты Google, но, вероятно, потому, что они берут информацию о местоположении из любого места, включая вышки мобильной сети.Также пробовал те же тестовые приложения на (Samsung) телефоне под управлением OS 9, и на этом было получено исправление.

Так что я предполагаю, что это не имеет ничего общего с Android OS 9 - это похоже на аппаратную ошибку.Странно, что он может видеть спутники, даже если он не может их использовать.

...