2011-03-03 22 views
25

Estoy intentando crear una aplicación para leer los valores del acelerómetro de mi teléfono, que solo es compatible con Android 2.1.¿Cómo uso el acelerómetro Android?

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

+0

un proyecto de juego de pelota utiliza el acelerómetro http://www.codeproject.com/Articles/188957/Simple-Android-Ball-Game – Ravi

+0

un tutorial básico para acceder a Android acelerómetro lecturas http: // www. quicktips.in/get-accelerometer-readings-android/ –

+0

eche un vistazo a http://onetouchcode.com/2016/08/07/android-accelerometer-example/ – Shailendra

Respuesta

28

Esto no se explica fácilmente en algunos párrafos. Usted debe tratar de leer:

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 el onSensorChanged devolución de llamada se puede consultar del sensor valores a través del SensorEvent.

+1

El servidor en AndroGames ya no parece existir, y el enlace de AndDev es de 2008 = terriblemente viejo. Las otras sugerencias son buenas sin embargo. –

+0

Ah, bueno ha pasado un tiempo desde que publiqué esa respuesta. Gracias por traer eso a mi atención. – slhck

+0

Recomendaría eliminar cualquier referencia al sitio web de AndDev: está enviando un ciberataque de alta gravedad interceptado por Norton. Gracias por entender. Saludos cordiales, –

40

de inicio 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]; 
      } 
    } 
} 
Cuestiones relacionadas