센서 상태가 변경될 때 프로그램에 알림

  1. 필요한 클래스와 인터페이스를 가져옵니다.
    import net.rim.device.api.system.Sensor;
    import net.rim.device.api.system.SensorListener;
  2. SensorListener 인터페이스를 구현하는 클래스를 만듭니다.
    class SensorDemoScreen extends MainScreen implements SensorListener
    {
    }
  3. 이 클래스에서 SensorListener.onSensorUpdate()를 구현하고, 센서 유형(메소드의 첫 번째 매개 변수) 및 센서의 새 상태(두 번째 매개 변수)를 바탕으로 작업을 수행합니다. 다음 코드 샘플은 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. SensorListener.addListener()를 호출하여 프로그램에 수신기를 추가합니다. 프로그램, 추가할 수신기, 수신할 센서 변경 유형을 지정합니다. 다음 코드 샘플은 슬라이더 변경에 대한 수신기를 현재 프로그램에 추가합니다. Sensor.removeListener()를 호출하여 수신기를 제거할 수 있습니다.
    Sensor.addListener(Application.getApplication(), this, Sensor.SLIDE);
  5. 여러 센서의 변경 사항을 수신하려면 addListener()의 세 번째 매개 변수를 업데이트하여 센서 상태 플래그를 더 추가합니다. 다음 코드 샘플은 플립 센서 또는 슬라이더 센서의 변경을 수신합니다.
    Sensor.addListener(Application.getApplication(), this, Sensor.FLIP | Sensor.SLIDE);

코드 샘플: 단말기 슬라이더의 상태 변경 수신

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.");
            }
        }
    }
}
이전 주제: 센서 상태 확인

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.