La mayoría de los
dispositivos Android tienen incorporados sensores de movimiento (aceleración y
rotación en los tres ejes), posición (orientación) y ambientales (temperatura,
iluminación, humedad, …). Para hacer uso de cualquiera de esos sensores Android proporciona Sensor Framework, una
API que permite un acceso sencillo y unificado a la información provista por
los mismos.
Lo mínimo necesario
Definir un listener encargado de recibir la información cuando se
produzca algún evento relacionado. El Listener se registra a través del método registerListener()
de la clase SensorManager.
//Instancia de SensorManager
SensorManager mSensorManager =
(SensorManager) getSystemService(Context.SENSOR_SERVICE);
//Obtener el sensor en concreto
Sensor mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
//
Definimos el listener que recibirá las notificaciones
SensorEventListener sensorListener = new SensorEventListener(){
@Override
public void
onAccuracyChanged(Sensor sensor, int accuracy) { }
@Override
public void
onSensorChanged(SensorEvent event) {
// El sensor de luz solamente
devuelve un valor
float lux = event.values[0];
…
}
};
//
Registro del listener
mSensorManager.registerListener(sensorListener, mLight,
SensorManager.SENSOR_DELAY_NORMAL);
|
Añadir al manifest las características hardware que emplea la app:
<uses-feature android:name=“android.hardware.sensor.light"/>
|
Para dejar de
recibir las actualizaciones hay que eliminar el listener:
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(sensorListener);
}
|
No hay comentarios:
Publicar un comentario