Я разрабатываю приложение сопоставления, используя Eclipse 3.5.Почему минимальное время обновления менеджера местоположения переопределяется при изменении местоположения?
Я устанавливаю минимальный период обновления с помощью метода requestLocationUpdates LocationManager через активность конфигурации. Когда я устанавливаю свойство, я вижу в Logcat, что системный процесс устанавливает значение OK.
Когда я действительно отправляю новое местоположение из элемента управления эмулятором DDMS и изменения местоположения на карте, я вижу, что системный процесс устанавливает минимальное время на ноль.
Ниже приведена запись сообщений журнала системы. Вы можете видеть, что я устанавливаю период до 32 секунд, затем 16, затем, после того, как я отправил имитированное изменение местоположения, система устанавливает его на ноль
Карта мгновенно реагирует на изменения местоположения на изменение местоположения, даже если они отправляются всего на пару секунд друг от друга.
Кто-нибудь знает, почему мое минимальное время переопределено системой?
10-26 22:21:09.770: DEBUG/GpsLocationProvider(54): setMinTime 32000
10-26 22:21:53.011: DEBUG/GpsLocationProvider(54): stopNavigating
10-26 22:21:57.810: DEBUG/GpsLocationProvider(54): setMinTime 16000
10-26 22:21:57.810: DEBUG/GpsLocationProvider(54): startNavigating
10-26 22:21:57.900: DEBUG/GpsLocationProvider(54): setMinTime 16000
10-26 22:22:39.099: DEBUG/GpsLocationProvider(54): TTFF: 41290
10-26 22:22:39.350: DEBUG/GpsLocationProvider(54): setMinTime 0
10-26 22:22:51.740: DEBUG/GpsLocationProvider(54): TTFF: 53925
10-26 22:22:51.820: DEBUG/GpsLocationProvider(54): setMinTime 0
10-26 22:22:56.780: DEBUG/GpsLocationProvider(54): TTFF: 58967
10-26 22:22:56.879: DEBUG/GpsLocationProvider(54): setMinTime 0
уместна код ниже, enableGPS() вызывается в onResume()
private void enableGPS() {
if (confData.getTrackMode() == AppConstants.GPS_ON) {
if (lm == null)
lm = (LocationManager) getSystemService(LOCATION_SERVICE);
long updateMillis = confData.getMapUpdatePeriod() * 1000;
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,
updateMillis, confData.getMapMinResendDistance(), this);
}
}
и слушатель
public void onLocationChanged(Location location) {
List<Overlay> overlays = mv.getOverlays();
lo = new MyLocationOverlay(this, mv);
overlays.add(lo);
lo.enableMyLocation();
int lat = (int) (location.getLatitude() * 1E6);
int lng = (int) (location.getLongitude() * 1E6);
GeoPoint point = new GeoPoint(lat, lng);
mc.setCenter(point);
mv.invalidate();
}
Сообщите нам код – Falmarri