A continuación les dejo el código base que se podría usar para empezar a sacarle provecho:
public class MySensor extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private boolean isEnabledSensor = false;
@Override
public final void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
if (mAccelerometer != null) {
isEnabledSensor = true;
} else {
Toast.makeText(getApplicationContext(),
"Not accelerometer detected", Toast.LENGTH_SHORT).show();
}
}
@Override
public final void onAccuracyChanged(Sensor sensor, int accuracy) {
// Do something here if sensor accuracy changes.
}
@Override
public final void onSensorChanged(SensorEvent event) {
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private boolean isEnabledSensor = false;
@Override
public final void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
if (mAccelerometer != null) {
isEnabledSensor = true;
} else {
Toast.makeText(getApplicationContext(),
"Not accelerometer detected", Toast.LENGTH_SHORT).show();
}
}
@Override
public final void onAccuracyChanged(Sensor sensor, int accuracy) {
// Do something here if sensor accuracy changes.
}
@Override
public final void onSensorChanged(SensorEvent event) {
//event contiene un vector que nos permite obtener las 3 coordenadas
float x_value = event.values[0];
float y_value = event.values[1];
float z_value = event.values[2];float x_value = event.values[0];
float y_value = event.values[1];
}
@Override
protected void onResume() {
super.onResume();
if (isEnabledSensor) {
mSensorManager.registerListener(this, mAccelerometer,
SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
protected void onPause() {
super.onPause();
if (isEnabledSensor) {
mSensorManager.unregisterListener(this);
}
}
Como podemos ver, al iniciar la app tenemos que comprobar si esta disponible o no, el acelerómetro en este dispositivo. Igualmente, se tiene que aplicar en las otras funciones (onResume, onPause).
En la función "onSensorChanged" es donde tenemos que realizar la acción que queremos llevar a cabo cuando se produzca el evento deseado.
It works!
Roger Sala
No hay comentarios:
Publicar un comentario