Как проверить состояние GPS? - PullRequest
0 голосов
/ 20 июля 2011

Я сейчас создаю приложение для определения местоположения устройства через GPS, у меня проблемы со статусом GPS, я просматриваю GpsStatus.Listener, но это сложно, так как я новичок с Android.

ЗДЕСЬ ЧТО Я ПЫТАЮСЬ С GPS СОСТОЯНИЕМ Я НА ПРАВОМ ТРЕКЕ ???

    final Listener onGpsStatusChange = new GpsStatus.Listener() {

        @Override
        public void onGpsStatusChanged(int event) {
            // TODO Auto-generated method stub
            switch(event){
            case GpsStatus.GPS_EVENT_STARTED:
            // Started...
            break ;
            case GpsStatus.GPS_EVENT_FIRST_FIX:
            // First Fix...
            break ;
            case GpsStatus.GPS_EVENT_STOPPED:
            // Stopped...
            break ;
            }
        }
    };

Я хочу проверить, является ли устройство:

  • без изменений
  • новое местоположение
  • start_
  • без данных GPS

Можете ли вы объяснить состояние GPS на примере ??, спасибо.

РЕДАКТИРОВАТЬ: ребята, это очень полезно до сих пор, теперь я застрял без изменения местоположения: когда пользователь все еще остается в том же месте, то метод onLocationChange не будет запущен, я не прав?так как я могу проверить это для отправки на сервер?:)

Ответы [ 2 ]

2 голосов
/ 20 июля 2011

Посмотрите на LocationManager , статус GPS связан с самим механизмом GPS, а не с уведомлениями о местоположении, и он не надежен на всех платформах / устройствах даже для определения, есть ли у вас исправление.

Или, как вариант, более старый, но все еще актуальный учебник

1 голос
/ 20 июля 2011

Когда onGpsStatusChanged () вызывается из фреймворка, это означает, что существует корректное обновление статуса gps.Используйте getGpsStatus () для получения последних обновлений статуса GPS.

public void onGpsStatusChanged(int event) {
        if (event == GpsStatus.GPS_EVENT_STARTED) {
            Log.d(TAG , "GPS event started ");

        } else if (event == GpsStatus.GPS_EVENT_STOPPED) {
            Log.d(TAG , "GPS event stopped ");

        } else if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {

            GpsStatus gs = locationManager.getGpsStatus(null);

Вы можете использовать приведенный выше фрагмент.Обратите внимание, что некоторые данные, которые вы хотите, находятся в структуре GpsStatus.

Остальная информация, которая вам нужна, например, новое местоположение, может быть получена из обратного вызова onLocationChanged ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...