Вопрос

Я пытаюсь получить текущее местоположение устройства, используя GPS устройства. Когда я регистрируюсь для обновлений (как показано ниже) для LocationManager.GPS_PROVIDER Никаких обновлений не прокатится, но когда я делаю то же самое для LocationManager.NETWORK_PROVIDER Я получаю обновления.

Я протестировал его на моем устройстве Android (не эмулятор). Я также удостоверился, что GPS включен. Другие приложения (не мои) могут получить доступ к моему местоположению. Что мне здесь не хватает?

LocationListener locationListener = new LocationListener() {
    @Override
    public void onLocationChanged(Location location) {
            locationRetrieved(location, this);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) { }

    public void onProviderDisabled(String provider) { providerDisabled(); }
};

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
Это было полезно?

Решение

Запуск GPS не является мгновенным процессом. Приемник в основном должен знать положение каждого из спутников GPS в созвездии, чтобы рассчитать его местоположение

Вы сначала проверяете, есть ли последнее известное место, которое вы можете использовать? Большинство приложений сначала проверяют это, а затем ищут местоположение.

Другие советы

Вы должны проверить, что ваш телефон разрешает собирать местоположение GPS.

Вероятно, то, что происходит, в том, что в настройках -> местоположение у вас есть только флажок для беспроводного местоположения. Если это так, GPS_Provider не работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top