Notificar um aplicativo quando o estado de um sensor for alterado

  1. Importe as classes e interfaces necessárias.
    import net.rim.device.api.system.Sensor;
    import net.rim.device.api.system.SensorListener;
  2. Crie uma classe que implemente a interface SensorListener.
    class SensorDemoScreen extends MainScreen implements SensorListener
    {
    }
  3. Na classe, implemente SensorListener.onSensorUpdate() e execute ações com base no tipo de sensor (o primeiro parâmetro do método) e no novo estado do sensor (o segundo parâmetro). O exemplo de código a seguir verifica o estado do controle deslizante em um aparelho 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 adicionar o ouvinte ao seu aplicativo. Especifique o aplicativo, o ouvinte a ser adicionado e os tipos de alterações de sensor a serem escutadas. O exemplo de código a seguir adiciona um ouvinte para alterações de controle deslizante ao aplicativo atual. Você pode invocar Sensor.removeListener() para remover um ouvinte.
    Sensor.addListener(Application.getApplication(), this, Sensor.SLIDE);
  5. Para escutar alterações de múltiplos sensores, atualize o terceiro argumento de addListener() para adicionar outros sinalizadores de estado do sensor. O exemplo de código a seguir escuta alterações no sensor do flip ou sensor do controle deslizante.
    Sensor.addListener(Application.getApplication(), this, Sensor.FLIP | Sensor.SLIDE);

Exemplo de código: Escutar alterações do estado do controle deslizante do aparelho

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.");
            }
        }
    }
}

Estas informações foram úteis? Gostaríamos de receber seus comentários.