Notificar a una aplicación cuando cambie el estado de un sensor

  1. Importe las clases y las interfaces necesarias.
    import net.rim.device.api.system.Sensor;
    import net.rim.device.api.system.SensorListener;
  2. Cree una clase que implemente la interfaz SensorListener.
    class SensorDemoScreen extends MainScreen implements SensorListener
    {
    }
  3. En la clase, implemente SensorListener.onSensorUpdate() y realice las acciones necesarias según el tipo de sensor (el primer parámetro del método) y el estado nuevo del sensor (el segundo parámetro). El siguiente ejemplo de código comprueba el estado del control deslizante de un dispositivo BlackBerry.
    public void onSensorUpdate(int sensorID, int update)
    {
        if (sensorID == Sensor.SLIDE)
        {
            if (update == Sensor.STATE_SLIDE_OPEN)
            {
                // do something if slider is now open
                statusField.setText("Slider is now open.");
            }
            else if (update == Sensor.STATE_SLIDE_IN_TRANSITION) 
            {
                // do something if slider is now in transition
                statusField.setText("Slider state is now in transition.");
            }
            else if (update == Sensor.STATE_SLIDE_CLOSED)
            {
                // do something if slider is now closed
                statusField.setText("Slider is now closed.");
            }
        }
    }
  4. Invoque SensorListener.addListener() para agregar el servicio de escucha a su aplicación. Especifique la aplicación, el servicio de rastreo que se va a agregar y los tipos de cambios de sensor que se van a rastrear. El siguiente ejemplo de código agrega un servicio de rastreo a la aplicación actual para los cambios del control deslizante. Puede invocar Sensor.removeListener() para eliminar un servicio de escucha.
    Sensor.addListener(Application.getApplication(), this, Sensor.SLIDE);
  5. Para escuchar los cambios en varios sensores, actualice el tercer argumento de addListener() para agregar marcas adicionales de estado de sensor. El siguiente ejemplo de código rastrea los cambios hechos al sensor de la tapa o al del control deslizante.
    Sensor.addListener(Application.getApplication(), this, Sensor.FLIP | Sensor.SLIDE);

Ejemplo de código: Rastrear los cambios del estado del control deslizante del dispositivo

class SensorDemoScreen extends MainScreen implements SensorListener
{
    private RichTextField statusField;
    public SensorDemoScreen()
    {   
        setTitle("Sensor Demo");
        statusField = new RichTextField();
        add(statusField);
        Sensor.addListener(Application.getApplication(), this, Sensor.SLIDE);
    }
    public void onSensorUpdate(int sensorID, int update)
    {
        if (sensorID == Sensor.SLIDE)
        {
            if (update == Sensor.STATE_SLIDE_OPEN)
            {
                // do something if slider is now open
                statusField.setText("Slider is now open.");
            }
            else if (update == Sensor.STATE_SLIDE_IN_TRANSITION) 
            {
                // do something if slider is now in transition
                statusField2.setText("Slider state is now in transition.");
            }
            else if (update == Sensor.STATE_SLIDE_CLOSED)
            {
                // do something if slider is now closed
                statusField.setText("Slider is now closed.");
            }
        }
    }
}

¿Le ha resultado útil esta información? Envíenos sus comentarios.