0
private static int SENSOR_DELAY_SLOW = 5000000;

sensMngr = (SensorManager) getSystemService(SENSOR_SERVICE);

sensMngr.registerListener(this, sensMngr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SENSOR_DELAY_SLOW);

センサーのデータを 5 秒ごとにキャプチャしたいのですが、目的のレートが無視されます。リスナーは、1 秒あたり 400 回以上も値をキャプチャします。

もちろん、受信データをonSensorChanged(SensorEvent event)メソッドで手動でフィルタリングできますが、主な目的はバッテリーの消耗を減らすことです。

ドキュメンテーション

私は何を間違っていますか?

ありがとうございました。

4

1 に答える 1

1

SensorManager.SENSOR_DELAY_UI が必要で、そこからフィルタリングする必要があります。選択可能な速度は 4 つだけで、独自の速度を定義することはできません。SENSOR_DELAY_UI は、最大で 1 秒あたり約 3 サンプルになる傾向があり、センサー値が変化したときに結果を取得しているため、サンプル間に数秒かかる場合があります。これはすべてデバイスによって異なります。

Android でのセンサー値配信の固定レートを定義する方法はありません。

于 2012-10-11T14:11:48.720 に答える