私は、正確な位置情報を Web サービスに常に送信する iPhone (iOS 6) 用の位置情報アプリに取り組んでいます。アプリが毎分位置パケットを送信するように設定しました (位置に大きな変化があった場合)。アプリのこの部分は (バックグラウンド タスクとして) うまく機能していますが、ご想像のとおり、GPS を常にオンにしておくと、バッテリーの寿命に大きく影響します (プラグを差し込むことに慣れているので、約 6 時間かかりますが、それほど悪くはありません)。車の中や家にいるときは携帯電話で 1 日を乗り切れるので問題ありませんが、実用的にするには、これを少なくとも 16 時間まで延長する必要があります)。
私がやりたいことは、電話がしばらくの間大きく動いていないことを示したときに GPS をオフにすることです。これは、GPS データ自体を使用して行うのは簡単です。しかし、GPS をオフにした状態で、再度オンにして位置情報の投稿を再開するトリガーとして使用できるものは何ですか? 新しいポジションがたとえば 5 分間生成されていないことを感知したらオフにし、X 分後にポジションが変更されたかどうかを確認し、それに応じて行動することができます。または、加速度計やその他のセンサーを巧妙な方法で使用して、GPS を再度オンにすることもできます。
移動時間が 1 日のごく一部であることを考えると、自宅やオフィスにいるときに GPS アクティビティを最小限に抑えることは理にかなっていますが、それを確実に行うにはどうすればよいでしょうか?