自分用メモ:GPSロガーを実装する際に参考となるOSS
「これだ!」って状態が見極められたら、ちゃんとGPS周りのエントリー書くつもりだけど、とりあえずメモ。
- mytracks - MyTracks for Android - Google Project Hosting
- open-gpstracker - A GPS tracking Android App: Build to be extensible and Free - Google Project Hosting
要点
- Serviceとして実装
- Serviceにしないとアプリがすぐに殺される
- startForeground()もする
- ただ、startForeground()してても死ぬので、復活させる実装も必要
- GPSロギング中はPARTIAL_WAKE_LOCK
- OSがサスペンドしてイベントが拾えなくなるのを回避
- 定期的にLocationListenerを再登録
- 長時間に測位できていない状態が続くとLocationManagerがおかしくなるっぽいが、removeすると元に戻る(なんかリソース取得ロックの競合が発生しているような挙動)
- MyTracksはTimerを利用して、1分ごとにLocationListenerを強制的に再登録している
- Open Gps Trackerは(起動モードによるが)120秒以上測位できていなかったら、LocationListenerを再登録している