Android - getLastKnownLocation (), возвращающий нуль - Как получить Местоположение через Обратный звонок? - PullRequest
0 голосов
/ 14 февраля 2019

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

Я пытаюсь получить местоположение моего устройства с помощью getLastKnownLocation(), но это не обязательно сработает, когда-установка Android APK.getLastLocation() кэширует местоположения и полагается на другие службы, получающие местоположение.

Моя реализация теперь работает, но не при чистой установке APK.Реализация здесь:

    private Location getLastKnownLocation() {
    LocationManager locationManager = (LocationManager)getApplicationContext().getSystemService(LOCATION_SERVICE);
    List<String> providers = locationManager.getProviders(true);
    Location currentLocation = null;
    for (String provider : providers) {
        Location location = locationManager.getLastKnownLocation(provider);
        if (location == null) {
            continue;
        }
        if (currentLocation == null || location.getAccuracy() < currentLocation.getAccuracy()) {
            // Found best last known location: %s", l);
            currentLocation = location;
        }
    }
    return currentLocation;
}

Моя идея состоит в том, чтобы сделать это:

Я хочу использовать интерфейс, который implements LocationListener и использует onLocationChanged(), и моя активностьреализовать метод onLocationChanged().Я хочу использовать Callback для доступа к этому местоположению в моей ViewModel.

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

IЯ знаю, что это простая проблема, поэтому я надеялся, что кто-то здесь сможет мне помочь.

По сути, я хочу получить доступ к Location, возвращенному в onLocationChanged(), и использовать этот объект Location в моей ViewModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...