Pixel 6a/7aのonNmeaMessage()で高度を取得する。

Pixel 4aまではonNmeaMessage()で高度を取得できていたのに、Pixel 6a以降でうまく取れなくなっていた。2022年9月から放置していました。

これまでは次の実装だった。
1.onNmeaMessage()の出力をキャッシュに保存。
2.キャッシュは$GPRMCが現れる毎にクリアして更新。
3.一定時間でキャッシュをファイルに保存。
以前はこれで$GPGGAが取れていたので、高度の情報が抜けることはなかった。

onNmeaMessage()の出力が変わって、GPS以外のGalileo、GLONASS他も出力するように色々変わったみたい。
参考:NMEA Revealed

次の方法でうまくいった。
1.onNmeaMessage()の出力をキャッシュ1($GPRMC+その他)、キャッシュ2($GPGGAのみ)に保存。
2.キャッシュ1は$GPRMCが現れる毎にクリアして更新。
3.キャッシュ2は$GPGGAが現れる毎にクリアして更新。
4.一定時間でキャッシュ1、キャッシュ2をファイルに保存。

週末に少しずつ試して、一月半ほどかかってしまった。