What is the difference between SENSOR_DELAY_NORMAL, SENSOR_DELAY_GAME, SENSOR_DELAY_UI and SENSOR_DELAY_FASTEST in Android

Here are some approximations based on tested results:

Accelerometer, SENSOR_DELAY_FASTEST: 18-20 ms
Accelerometer, SENSOR_DELAY_GAME: 37-39 ms
Accelerometer, SENSOR_DELAY_UI: 85-87 ms
Accelerometer, SENSOR_DELAY_NORMAL: 215-230 ms
Orientation Sensor, SENSOR_DELAY_FASTEST: 16-17 ms
Orientation Sensor, SENSOR_DELAY_GAME: 37-39 ms
Orientation Sensor, SENSOR_DELAY_UI: 77 ms
Orientation Sensor, SENSOR_DELAY_NORMAL: 224-225 ms

You can also define your own rate, for example 100ms.

int READINGRATE = 100000; // time in us
mSensorManager.registerListener(this, mLinearAccelerometer, READINGRATE);

However the rate is just an approximation, if you need an accurate rate it is better to use a timer.


int SENSOR_DELAY_FASTEST get sensor data as fast as possible int SENSOR_DELAY_GAME rate suitable for games int SENSOR_DELAY_NORMAL rate (default) suitable for screen orientation changes int SENSOR_DELAY_UI rate suitable for the user interface


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

SENSOR_DELAY_FASTEST 0 microsecond
SENSOR_DELAY_GAME 20,000 microsecond
SENSOR_DELAY_UI 60,000 microsecond
SENSOR_DELAY_NORMAL 200,000 microseconds(200 milliseconds)