Приложение Android 2.2: нет сигнала GPS через 30 минут. Работает снова через 30 минут, ничего не делая - PullRequest
0 голосов
/ 24 февраля 2011

Я работаю над HTC Legend и пытаюсь создать собственное приложение для регистрации gps.Все работает, как и ожидалось, за исключением того факта, что у меня разрыв в 30 минут на каждом треке.

Этот разрыв, когда я не получаю данные GPS, всегда составляет около 30-60 минут - так что после 30 минут активности,У меня нет данных GPS в течение 30 минут.И, ничего не делая (даже не перезапуская приложение), после 30-минутного перерыва оно снова начинает собирать данные.

У кого-нибудь есть объяснение этому?Это сводит меня с ума ...

Забыл упомянуть, что я собираю данные с помощью простого запроса requestLocationUpdates, но здесь нет проблем ...

РЕДАКТИРОВАТЬ: Пример кода по запросу:

    private LocationListener ll = new LocationListener(){

        @Override
        public void onLocationChanged(Location loc) {
        }   

        @Override
        public void onProviderDisabled(String arg0) {

        }

        @Override
        public void onProviderEnabled(String arg0) {
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }   
};

А вот соответствующий слушатель NMEA, потому что я буду обрабатывать необработанные данные GPS:

GpsStatus.NmeaListener nl = new GpsStatus.NmeaListener() {

    @Override
    public void onNmeaReceived(long timestamp, String nmea) {
        /*
         * Use patcher and matcher to find a proper GPRMC sentence and remove symbols at the end like \n, # etc.
         */
        m = p.matcher(nmea);
        Log.d(LocationLoggerApp.TAG, "Time for a break...");
        //Notify activity that app is ready for upload
        broadcastIntent.putExtra("LOG", "Got valid GPRMC sentence");
        sendBroadcast(broadcastIntent);
    }
};

И здесь у нас есть строка из функции onStart, в которой «загружается» вышеуказанный материал:

/*
     * Request location updates as workaround because the function addNmeaListner DOES NOT enable GPS on the phone!
     */
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, interval*1000, 0, ll);
    lm.addNmeaListener(nl);

С уважением, Мартин

1 Ответ

0 голосов
/ 24 февраля 2011

Есть ли шанс некоторых примеров кода?Мое первое предложение - проверить, правильно ли вы установили параметры minTime и minDistance.

public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...