1

現在、次のメソッドで NMEA データ GPGSA を受信して​​いる Android 上のアプリケーションがあります。

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 に答える