NMEA довольно легко разобрать. Существуют различные типы предложений для разных вещей. Для данных о местонахождении, предложение, которое вам нужно рассмотреть, это «рекомендуемый минимум», $GPRMC
.
Пример отсюда: http://aprs.gids.nl/nmea/#rmc
$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68
225446
(время исправления 22:54:46 UTC)
A
(предупреждение приемника навигации A = ОК, V = предупреждение)
4916.45,N
(Широта 49 град. 16.45 мин. Севернее)
12311.12,W
(долгота 123 град. 11,12 мин на запад)
000.5
(скорость относительно земли, узлы)
054.7
(Курс сделан хорошо, правда)
191194
(Дата исправления 19 ноября 1994 г.)
020.3,E
(магнитное отклонение 20,3 градуса к востоку)
*68
(обязательная контрольная сумма)
Возможно, вас также заинтересует $GPGSA
, в котором есть длинные спутниковые данные с разведением позиции (качество определения).
Если для синтаксического анализа NMEA нет внутреннего класса, вы можете использовать эти примеры, чтобы легко создать его самостоятельно. К сожалению, я не разработчик Android, поэтому я не знаю, какие внутренние классы вам доступны.