Notifier une application lors de la modification de l'état d'un capteur

  1. Importez les classes et les interfaces requises.
    import net.rim.device.api.system.Sensor;
    import net.rim.device.api.system.SensorListener;
  2. Créez une classe implémentant l'interface SensorListener.
    class SensorDemoScreen extends MainScreen implements SensorListener
    {
    }
  3. Dans la classe, implémentez SensorListener.onSensorUpdate() et agissez selon le type de capteur (premier paramètre de la méthode) et le nouvel état du capteur (deuxième paramètre). L'échantillon de code suivant vérifie l'état du curseur sur un terminal 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. Appelez SensorListener.addListener() pour ajouter l'écouteur à votre application. Spécifiez l'application, l'écouteur à ajouter et les types de modifications du capteur à détecter. L'échantillon de code suivant ajoute un écouteur pour les modifications de curseur à l'application actuelle. Vous pouvez appeler Sensor.removeListener() pour supprimer un écouteur.
    Sensor.addListener(Application.getApplication(), this, Sensor.SLIDE);
  5. Pour écouter les modifications apportées à plusieurs capteurs, mettez à jour le troisième argument de addListener() pour ajouter les indicateurs d'état des capteurs supplémentaires. L'échantillon de code suivant détecte les modifications du capteur de clapet ou du capteur de curseur.
    Sensor.addListener(Application.getApplication(), this, Sensor.FLIP | Sensor.SLIDE);

Échantillon de code : détection des modifications de l'état du curseur du terminal

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.");
            }
        }
    }
}
Sujet précédent: Vérifier l'état d'un capteur

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.