Android отправляет широту и долготу на интервал, объект местоположения

#android #gps #location #locationmanager #locationlistener

#Android #gps #Расположение #locationmanager #locationlistener

Вопрос:

Я просмотрел несколько других вопросов и руководств, но я не получаю то, что ищу

Я пытаюсь получить широту и долготу в этом формате

широта = 40,769134, долгота = -73,960905

Я реализовал этот класс, который принимает мои глобальные переменные latitude и longitude (это длинные типы данных)

  class GpsListener implements LocationListener{

        public void onLocationChanged(Location location) {
              // TODO Auto-generated method stub
              latitude = location.getLatitude();
              longitude = location.getLongitude();
              //float speed = location.getSpeed();
              checkin();

        }

        public void onProviderDisabled(String provider) {
              // TODO Auto-generated method stub

        }

        public void onProviderEnabled(String provider) {
              // TODO Auto-generated method stub

        }


        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            // TODO Auto-generated method stub

        }

}
  

Я просмотрел другие учебные пособия здесь и заметил, что люди используют LocationManager класс для взаимодействия с моим, LocationListener но все, что мне действительно нужно сделать, это использовать Location объект, потому что моему классу GpsListener.onLocationChanged(.. ) нужен объект location, но можете ли вы привести пример или рекомендации о том, как использовать объект location или как просто получить эту долготу иширота?

Я просто передаю широту и долготу на сервер, поэтому мне не нужно ничего делать с модулем GPS, моя checkin() функция вызывает вызов сервера

Ответ №1:

вы пытаетесь избежать использования LocaitonManager?

 locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MINIMUM_TIME_BETWEEN_UPDATES,MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,new MyLocationListener());
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
  

если вы просто хотите использовать его один раз, я полагаю, вы могли бы отменить регистрацию всего после получения местоположения. Но, возможно, вы хотите убедиться, что точность находится в пределах x метров и т.д..

Комментарии:

1. Я не хочу избегать его использования, я просто не знаю, как его использовать, чтобы получить нужный мне результат. Мне просто нужны текущие долгота и широта в моем длинном формате. LocationManager и LocationListener, похоже, не дают мне нужного контроля (или я его не понимаю). Мне нужен объект местоположения

2. У меня есть приложение GPS, которое будет маршрутизировать местоположения.. и я только что просмотрел его, и получить местоположение почти так же просто, как у вас есть слушатель реализация диспетчера местоположений. Вы не пытаетесь получить координаты GPS через эмулятор, не так ли? Если это так, вам нужно передать ему координаты GPS через DDMS или вы можете использовать окно терминала. Также не забывайте, что вам необходимо использовать правильные разрешения в манифесте.

3. эй, все работало так, как должно, телефон, который я использовал, работал не так, как должен. Я запустил свой исходный код (очень похожий на ваш), и индикатор GPS мигнул, и сервер получил мои координаты просто отлично!

4. рад этому.. удачи