2010-07-25 3 views
3

Я успешно получаю данные GPS через методы registerLocationListener() и onLocationChanged(). Единственная проблема заключается в том, что скорость чтения моего приложения зависает, если больше нет данных GPS (например, когда я иду в помещении, вхожу в туннель и т. Д.). Поведение, которое я хочу для моего приложения, заключается в том, что пользователь каким-то образом уведомлен о том, что показания скорости, вероятно, не точны из-за отсутствия свежих данных (установите скорость на ноль, мигайте показание скорости и т. Д.).Периодически проверяйте, есть ли у android GPS новые данные

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

+0

Возможно, вы могли бы использовать GpsStatus.Listener, хотя я столкнулся с некоторыми проблемами с ним (см. Мой пост http://stackoverflow.com/questions/3287389/gpsstatuslistener-no-satellites-used-in-fix-although-status -is-gpsstatus-GPS накануне). Недавно я столкнулся с подобной задачей, поэтому я теперь запускаю два запросаLocationUpdates с gps_provider и network_provider в одно и то же время. –

ответ

3

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

+0

Это в значительной степени то, что я закончил после неудачной попытки использовать GpsStatus.getSatellites() и GpsSatellite.usedInFix(). Всякий раз, когда я получаю новый объект Location в моем LocationListener, я устанавливаю временную метку с System.currentTimeMillis(), а затем сравниваю время каждый раз, когда получаю обновление в своем GpsStatus.Listener. Это примитивно, но пока это единственное решение, которое я нашел, что работает ... – Chris

Смежные вопросы