自分用メモ:GPSロガーを実装する際に参考となるOSS

「これだ!」って状態が見極められたら、ちゃんとGPS周りのエントリー書くつもりだけど、とりあえずメモ。

要点

  • Serviceとして実装
    • Serviceにしないとアプリがすぐに殺される
    • startForeground()もする
      • ただ、startForeground()してても死ぬので、復活させる実装も必要
  • GPSロギング中はPARTIAL_WAKE_LOCK
  • 定期的にLocationListenerを再登録
    • 長時間に測位できていない状態が続くとLocationManagerがおかしくなるっぽいが、removeすると元に戻る(なんかリソース取得ロックの競合が発生しているような挙動)
    • MyTracksはTimerを利用して、1分ごとにLocationListenerを強制的に再登録している
    • Open Gps Trackerは(起動モードによるが)120秒以上測位できていなかったら、LocationListenerを再登録している