What is the Android Codes to record accelerometer data?

What is the Android Codes to record accelerometer data in millisecond?

  • I am doing a project that have to record the accelerometer data in a logged file. Can anyone help me with the following codes? What is the android codes that should add in the following codes in order to record accelerometer data? I may hope to get the data every 10millisecond. Any help is greatly appreciated. package com.example.helloandroid; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.TextView; public class AccActivity extends Activity implements SensorEventListener { private SensorManager sensorManager; TextView xCoor; // declare X axis object TextView yCoor; // declare Y axis object TextView zCoor; // declare Z axis object @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); xCoor=(TextView)findViewById(R.id.xcoor); // create X axis object yCoor=(TextView)findViewById(R.id.ycoor); // create Y axis object zCoor=(TextView)findViewById(R.id.zcoor); // create Z axis object sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE); // add listener. The listener will be HelloAndroid (this) class sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); /* More sensor speeds (taken from api docs) SENSOR_DELAY_FASTEST get sensor data as fast as possible SENSOR_DELAY_GAME rate suitable for games SENSOR_DELAY_NORMAL rate (default) suitable for screen orientation changes */ } public void onAccuracyChanged(Sensor sensor,int accuracy){ } public void onSensorChanged(SensorEvent event){ // check sensor type if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){ // assign directions float x=event.values[0]; float y=event.values[1]; float z=event.values[2]; xCoor.setText("X: "+x); yCoor.setText("Y: "+y); zCoor.setText("Z: "+z); } } }

  • Answer:

    That rate at which you receive data is going to be dependent on the discretion of the operating system, as the data is delivered by events triggering callbacks. It's also likely to device dependent too. You can't poll the sensors at a predetermined rate. The SensorManager API docs state public boolean registerListener (SensorEventListener listener, Sensor sensor, int rate) The rate sensor events are delivered at. This is only a hint to the system. Events may be received faster or slower than the specified rate. Usually events are received faster. The value must be one of SENSOR_DELAY_NORMAL, SENSOR_DELAY_UI, SENSOR_DELAY_GAME, or SENSOR_DELAY_FASTEST or, the desired delay between events in microsecond. So you could ask for a delay of 10,000 microseconds (10ms), just how often it would be delivered to your onSensorChanged could only be determined by an experiment to measure it.

Newbie at Stack Overflow Visit the source

Was this solution helpful to you?

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.