Índice

Sensores en Android

1. Principio

Un dispositivo Android dispone de un gran número de sensores (acelerómetro, giroscopio, sensor de proximidad...) y todos ellos pueden gestionarse mediante la clase SensorManager.

Esta clase se comporta del mismo modo que los diferentes Manager disponibles en Android (NotificationManager, NetworkManager...). Debe utilizar el método getSystemService para inicializar el SensorManager.

final SensorManager sensorManager = (SensorManager) 
getSystemService(Context.SENSOR_SERVICE);

Hay varios tipos de sensores. A continuación se muestra una lista exhaustiva:

  • Sensor.TYPE_ACCELEROMETER: representa el acelerómetro (dirección actual en los tres ejes en m/s2).

  • Sensor.TYPE_GYROSCOPE: representa el giroscopio del dispositivo, que permite conocer el porcentaje de rotación del dispositivo en los tres ejes.

  • Sensor.TYPE_PROXIMITY: representa un sensor de proximidad que sirve para determinar la distancia entre el dispositivo y un objeto determinado. Se utiliza, en particular, para detener el dispositivo cuando se está comunicando. 

Puede obtener la lista de sensores disponibles de un dispositivo mediante el método getSensorList.

final SensorManager sensorManager = (SensorManager) 
getSystemService(Context.SENSOR_SERVICE); 
 
List<Sensor> sensorsList = 
sensorManager.getSensorList(Sensor.TYPE_ALL);  
  for (Sensor sensor : sensorsList) { 
     Log.v("SensorActivity", "sensor = " + sensor.getName()); 
}

Obtendrá ...