私は同じことを試みていました、そしてするべきいくつかの読書があります。まず、GPRMCの仕様をお読みくださいhttp://aprs.gids.nl/nmea/#rmc
次に、OpenGTSのソースコードのクラスNmea0183に移動し、文字列の最後にあるチェックサム(メソッドcalcXORChecksum)がどのように生成されるかを確認します。
テストを行ったところ、使用しているチェックサム(1C)が間違っていることがわかりました。文字列の最後にチェックサムを追加していない場合、デフォルトではOpenGTSはチェックサムを無視しないようです。そのため、Androidアプリで常にチェックサムを計算し、最後に追加する必要があります。チェックサムが正しくない場合、要求はドロップされ、何もログに記録されません。
最後に、GPRMC文字列で正しい日付と時刻を使用していることを確認してください。そうしないと、Webアプリのレポートで正しい日付と時刻を見つけるのが困難になります。たとえば、送信した文字列では、日付は2007年7月18日で、時刻はGMT08:07:01のようです。
お役に立てば幸いです。アプリを楽しみにしています。本当に使えました。
これは私がNmea0183のメインメソッドで行ったことです(他のすべてにコメントしました)。
String gprmc = "$GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A*44";
int cs = calcXORChecksum(gprmc, false);
System.out.println(Integer.toHexString(cs));
Nmea0183 n;
n = new Nmea0183(gprmc, false);
Print.sysPrintln("$GPRMC : " + gprmc);
Print.sysPrintln(" ==>: " + n.toGPRMC());
Print.sysPrintln("NMEA-0183: \n" + n);