2013-04-30 8 views
5

センサーの読み取り速度を1秒あたりに得る方法はありますか? SENSOR_DELAY_NORMALのレートは何秒ですか?センサーの値を毎秒取得する

sm=(SensorManager)getSystemService(SENSOR_SERVICE); 
accelerometer=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL); 
+0

Sensor.TYPE_ACCELEROMETER SENSOR_DELAY_NORMAL \t 161ms SENSOR_DELAY_UI \t 20msの SENSOR_DELAY_GAME \t 20msの SENSOR_DELAY_FASTEST \t 20msでなくイムありません確かに私は値を変更することができます。 –

答えて

5

SENSOR_DELAY_ *で指定された遅延は唯一が遅れを提案し、実際の結果が速くなったり遅く来るかもしれないです。 1秒間に1回の読み込みだけが必要な場合は、最も遅い速度(SENSOR_DELAY_NORMAL)を使用できます。秒あたり約5回更新されます。あなたは何かを正確に1秒に1回したいなら、自分のタイミングが必要です。値は、マイクロ秒であるように

http://developer.android.com/guide/topics/sensors/sensors_overview.html

+1

sm.registerListener(this、accelerometer、1000)は1秒あたりの加速度値を返しますか? –

+4

API 11以降に絶対値を設定できるようですね。はい、これは約1秒に1回発生します。しかし、とにかく、これが非常に正確であるとは思わないでください。 –

6

はあなたに感謝し、それはあまりにも、私が1000を使用していた、私の質問に答え、そうです。

SENSOR_DELAY_UI  (60,000 microsecond delay) 
SENSOR_DELAY_FASTEST (0 microsecond delay) 
SENSOR_DELAY_NORMAL) (200,000 microseconds delay) 

1秒間、私は一定の1,000,000マイクロ秒を使うべきです。

+0

@SonerGönülを1000000に設定しても効果はありますか?私にとっては、遅延頻度の値として1,000,000であっても、毎秒20レコードを超えることはありません。私は最終的に、2番目のセンサーの記録をすべて集約して平均化し、その後の使用のために論理を導入しなければなりませんでした。 –

+0

ドキュメントでは、 2つの連続したイベントの間の望ましい遅延をマイクロ秒単位で示します。これはシステムへのヒントに過ぎません。イベントは、指定されたレートより速くまたは遅く受信されることがあります。通常、イベントはより速く受信されます。 SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI、SENSOR_DELAY_GAME、SENSOR_DELAY_FASTEST、またはマイクロ秒単位の遅延のいずれかになります。 –

0

SENSOR_DELAY_UI(60,000マイクロ秒の遅延) SENSOR_DELAY_FASTEST(0マイクロ秒の遅延) SENSOR_DELAY_NORMAL)(20万マイクロ秒の遅延)

関連する問題