Я бы порекомендовал использовать NmeaListener , как это предложил sladstaetter в его ответ .Однако, согласно документации NMEA , "$ GPGGA" - не единственное предложение, которое вы можете получить.Вы должны искать любое предложение "GGA" ($ - GGA).
Для этого отлично подходят регулярные выражения, например:
@Override
public void onNmeaReceived(final long timestamp, final String nmea) {
final Pattern pattern = Pattern.compile("\\$..GGA,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,([+-]?\\d+(.\\d+)?),[^,]*,[^,]*,[^,]*,[^,]*,[^,]*$");
final Matcher matcher = pattern.matcher(nmea);
if (matcher.find()) {
final float altitude = Float.parseFloat(matcher.group(1));
// ...enjoy the altitude!
}
}