¿Cómo uso el acelerómetro Android?

Intento crear una aplicación para leer los valores del acelerómetro en mi teléfono, que solo es compatible con Android 2.1.

¿Cómo leo desde el acelerómetro usando un código compatible con 2.1?

Comience con esto:

public class yourActivity extends Activity implements SensorEventListener{ private SensorManager sensorManager; double ax,ay,az; // these are the acceleration in x,y and z axis @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sensorManager=(SensorManager) getSystemService(SENSOR_SERVICE); sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); } @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){ ax=event.values[0]; ay=event.values[1]; az=event.values[2]; } } } 

Esto no se explica fácilmente en algunos párrafos. Deberías intentar leer:

  • Descripción general del sensor
  • Descripción de SensorManager

Estos muestran un marco sobre cómo acceder a los sensores:

  public class SensorActivity extends Activity implements SensorEventListener { private final SensorManager mSensorManager; private final Sensor mAccelerometer; public SensorActivity() { mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); } protected void onResume() { super.onResume(); mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); } protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this); } public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void onSensorChanged(SensorEvent event) { } } 

En la onSensorChanged llamada onSensorChanged puede consultar los valores del sensor a través del SensorEvent .