我在android上有一个应用程序,当前正在使用以下方法接收NMEA数据GPGSA:
locationManager.addNmeaListener (new GpsStatus.NmeaListener () {
@ Override
public void onNmeaReceived (long timestamp, nmea String) {
ts = timestamp;
nm = nmea;
}});
有可能不在接收GPGSA GPRMC接收数据。
我使用GPS Desire HD进行测试。
答案 0 :(得分:2)
当您使用addNmeaListener时,您将收到手机提供的所有GPS句子(在某些情况下根本没有)。但是GPGSA只包含卫星DOP信息,所以如果你收到它,你几乎肯定会得到GPRMC。
我怀疑你的问题是你将所有收到的句子移动到一个全局变量,而GPGSA恰好是你在读取缓冲区时收到的最后一个。你会想要这样的东西:
if (nmea.substring(0,6).equals("$GPRMC")) {
ts = timestamp;
nm = nmea;
}