今週は画像が沢山あったのでした。

自転車、カワウソ、自炊、時々PC
ようやくFarEast&Michiの改修も完了してログ復活!
https://riverotter.xsrv.jp/bicycle/tours/2020/202010030609.html
スマホをPixel 4aに換えてから一ヶ月あまり、GPSロガー FarEast3とログ整形アプリmichiの対応が終わりました。とりあえず動かせるレベルですが…
■ GPS: NMEA-0183 出力が変わった
については→ NMEAで$GNGGAを取る
■ フォアグラウンド サービスが必要になった。
上記に対応して動かしてみるとデバッグで動作の確認はOK。
実際にログを撮ってみると、何か変?試してみると、
・アプリを前面に出してると問題なし。
・アプリをバックグラウンドにしても問題なし。
・ディスプレイをOFFにするとNMEAデータが取れてない。
色々とgoogleってみると、android 11以降はバックグラウンドでは位置情報はじめ何かと制限が付くらしい。フォアグラウンド サービスを利用して5秒毎にアクセスする、というのが一般的な回避策みたい。次を参考に実装してみた。
[Android] Service の使い方
汚い実装になったけど、とりあえずの動作は問題ないみたい。今回の実装を整理したい、フラグメント周りで非推奨が増えている、など手を入れたい箇所が沢山残りました。
Pixel 4a のNMEAで取得したデータを比べてみたら、これまでのものと形式が随分と変わっていました。
ざっとまとめると、こんな感じ。
まぁ、色々と疑問は残ったわけですが。
旧来のようにGPS情報だけ取得する方法、とか無いのかな?
NMEAデータを取る前に、対応したシステム情報を取得する方法は?
とりあえず、$GPGGAが取れないようなので、複合化された$GNGGAを取るのが良いかな。
FarEast3 のお話。GPSログ取り用の自作Androidアプリです。
Android 9から10になってログ取り始めるとアプリが落ちていたので、改修しよう。と思って始めないうちにAndroid 11になりましたが、落ちるのは相変わらずでした。
とりあえず、パーミッション周りが変わったので対応、しかしやはり落ちる。落ちる箇所が見つかりましたが、取得した “$GPGGA” の時刻をパースしているところでした。取得した$GPGGAのデータが空でした。”$GPGGA,,,,,,0,,,,,,,,*66″ こんな感じ($GPGGAの次がdoubleの時刻)。これまでココで落ちてなかったので、このように時刻が空で帰って来ることは無かったはず。
取得したテキストをそのまま保存しているだけだし、NMEAのデータ取得は問題なさそう。$GPGGA以外はパッと見それらしきデータが入っているようす。
うーん、何が問題なのだろう?