2012-05-11 3 views
0

У меня есть приложение на Android в настоящее время получает GPGSA NMEA данных с помощью метода:Получить GPRMC в Android

locationManager.addNmeaListener (new GpsStatus.NmeaListener() { 
@ Override 
public void onNmeaReceived (long timestamp, nmea String) { 
ts = timestamp; 
nm = nmea; 
}}); 

Любой шанс, что вместо получения данных на приемном GPGSA GPRMC.

Я использую GPS Desire HD для тестирования.

+0

Никто не знает, как изменить GPGSA на GPRMC? – altex

ответ

2

Когда вы используете addNmeaListener, вы получите все GPS-предложения, которые предоставляет телефон (что в некоторых случаях вообще отсутствует). Однако GPGSA содержит только информацию спутникового DOP, поэтому, если вы получаете то, что почти наверняка получите GPRMC.

Я подозреваю, что ваша проблема заключается в том, что вы переносите все полученные предложения в глобальную переменную, и GPGSA является последним, полученным в то время, когда вы читаете буфер. Вам понадобится примерно следующее:

if (nmea.substring(0,6).equals("$GPRMC")) { 
    ts = timestamp; 
    nm = nmea; 
}