Android, как использовать GPS, последнее известное местоположение, местоположение IFF, измененный слушатель, не будет работать - PullRequest
0 голосов
/ 10 октября 2011

У меня есть служба, которая запускает эту ветку для получения координат GPS

   LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
   GpsListener gpsLocationListener = new GpsListener();
   long minTime = 5000; // 5 sec for test purposes...
   float minDistance = 1;
   lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime,
            minDistance, gpsLocationListener);

и, конечно, мой gpsLocationListener выглядит так:

   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

        }

}

, где метод onLocationChanged отправляет широту и долготу на сервер после его получения.

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

Как запустить другую функцию, если она не обновлялась за X секунд? Эта другая функция просто отправит последние известные координаты?

Понимание ценится!

1 Ответ

1 голос
/ 10 октября 2011

Вам необходимо установить повторяющийся таймер. Android - надежное получение текущего местоположения может помочь вам в том, что вы пытаетесь сделать.

...