1

我在 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 进行测试。

4

1 回答 1

2

当您使用 addNmeaListener 时,您将收到手机提供的所有 GPS 语句(在某些情况下根本没有)。但是 GPGSA 仅包含卫星 DOP 信息,因此如果您收到该信息,您几乎肯定也会获得 GPRMC。

我怀疑您的问题是您正在将收到的所有句子移动到一个全局变量中,而 GPGSA 恰好是您在读取缓冲区时收到的最后一个句子。你会想要这样的东西:

if (nmea.substring(0,6).equals("$GPRMC")) {
    ts = timestamp;
    nm = nmea;
}
于 2012-12-08T02:26:21.637 回答