Invio di una notifica a un'applicazione durante la modifica dello stato di un sensore

  1. Importare le classi e le interfacce richieste.
    import net.rim.device.api.system.Sensor;
    import net.rim.device.api.system.SensorListener;
  2. Creare una classe che implementi l'interfaccia SensorListener.
    class SensorDemoScreen extends MainScreen implements SensorListener
    {
    }
  3. Nella classe, implementare SensorListener.onSensorUpdate() ed eseguire azioni in base al tipo di sensore (il primo parametro del metodo) e al nuovo stato del sensore (il secondo parametro). Nel seguente esempio di codice viene eseguita una verifica dello stato dello slider di 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. Richiamare SensorListener.addListener() per aggiungere il listener all'applicazione. Specificare l'applicazione, il listener da aggiungere e i tipi di modifiche al sensore da rilevare. Nel seguente esempio di codice viene aggiunto un listener per le modifiche dello slider all'applicazione corrente. Per rimuovere un listener, è possibile richiamare Sensor.removeListener().
    Sensor.addListener(Application.getApplication(), this, Sensor.SLIDE);
  5. Per rilevare le modifiche a più sensori, aggiornare il terzo argomento di addListener() per aggiungere ulteriori contrassegni di stato del sensore. Nel seguente esempio di codice vengono rilevate le modifiche al sensore dello sportellino o dello slider.
    Sensor.addListener(Application.getApplication(), this, Sensor.FLIP | Sensor.SLIDE);

Esempio di codice: rilevamento delle modifiche allo stato dello slider 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.");
            }
        }
    }
}
Argomento precedente: Verifica dello stato di un sensore

Le informazioni sono state utili? Inviateci i vostri commenti.