1

電話が動いているときを検出したいのですが、すべての種類の動きではありません。たとえば、電話を手に取ったり振ったりしても、トリガーされるべきではありません。

理想的には、電話/人が「歩いている」状態のときにコードを実行したいと思います。どのようなオプションがありますか?

4

3 に答える 3

2

加速度計とデジタルコンパスの組み合わせを、それらを備えた電話で使用して、速度と方向を決定できます。

人が歩いているかどうかを判断するだけの場合、必要なのは加速度計だけです。フットステップの出力を処理するだけです。

加速度計で足のステップを検出するためのチュートリアルがWeb上にたくさんあります。

于 2010-06-01T17:52:10.837 に答える
0

Wifi-NetworksとCellTowersから現在地を取得することもできます。Androidのすべてのロケーションプロバイダーは、android.location.LocationProviderのサブクラスです。それはおそらく始めるのに良い場所です。それらの「範囲」は数百フィートの幅になる可能性があるため、どちらが最適かはわかりません。

于 2010-06-01T15:40:19.360 に答える
0

Android加速度計は、SensorEventクラスを使用して加速度を知る機能を提供します。したがって、クラスのオブジェクトを使用し、onSensorChanged()を処理して、デバイスの動きを判別します。

x = SensorEvent.values [0]; x方向の加速度を示します。

したがって、興味があるかもしれないのは、x、y、z方向の加速度を見つけて、そのような最後の10個のサンプルの平均と標準偏差を計算してみることです。標準偏差に取り組むことで、確実に正しいポイントにたどり着くことができます。0になる場合は、デバイスが静止していることを意味します。SD> 0.5で15秒以上かかる場合は、デバイスが継続的に移動していることを意味します。Lemmeは、さらにサポートが必要かどうかを知っています。

乾杯、ニティーン

于 2011-08-30T16:11:17.943 に答える