電話の速度を測定するためにネイティブのiPhoneアプリ(基本的にはスピードメーター)を実装する必要があります。CoreLocation APIを介してこれを行うのはかなり簡単ですが、これは一度に最大2時間使用できるリアルタイムの測定であるため、バッテリーの消費量が心配です。私の理解では、LocationManagerからのイベントを積極的に監視している間(実際にはGPSの位置は気にしませんが)、バッテリーを大量に消費します。
探索する他の明白なオプションは、加速度計を使用して速度を計算することですが、APIにはそれを支援するものは何もありません。私の調査によると、これは可能であるはずですが、非常に複雑でエラーが発生しやすいようです。加速度から速度への変換は、最初は難しい場合があります。さらに、iPhoneの加速度計データは「ノイズが多い」場合があります。ローパス/ハイパスフィルタリングなどの使用を示すSDKの例はよく知っていますが、速度の計算を示す良い例はどこにも見当たりません。
誰かがこれを共有できる実際の経験を持っていますか?コードは素晴らしいでしょうが、本当に私は誰かがこれを(長寿命のアプリのために)うまくやったかどうか、そして彼らがどのようなアプローチをとったかを知りたいだけです。
編集:LocationManagerAPIを使用する実用的なプロトタイプがあります。正常に動作しますが、更新サイクルは速度のリアルタイム測定には理想的とは言えません。状況によっては、更新に最大4〜5秒かかる場合があります。特定の速度でのクルージングは問題なく機能する傾向がありますが、ユーザーの操作の観点からは、加速/減速は非常に遅れる傾向があります。また、私が行っている他のいくつかの計算に速度を供給する必要があり、精度は実際には必要なものではありません。
私が見た他の(ごく少数の)アプリ、特にGPSを使用しないと主張しているが速度を正確に計算するgMeterに基づいて可能であるように思われます。私が見つけることができるどこにもこれを示す参照やサンプルコードがないことに本当に驚いています。複雑だとは思いますが、確かに何かがあります。