【问题标题】:How to Receive SMS Messages using Javax.Comm Serial Event Listener如何使用 Javax.Comm 串行事件侦听器接收 SMS 消息
【发布时间】:2012-12-27 16:41:12
【问题描述】:

我正在用 Java 编写一个程序来发送和接收 SMS 文本消息。我正在使用 AT 命令和蓝牙连接与我的诺基亚设备。我写了一个类来发送消息。但我不知道如何让 java 串行事件在我收到短信时通知我。

为了在我向手机写入适当的 AT 命令时接收消息,然后我编写了一个类以每 10 秒向手机发送一个换行语句,这会显示任何新消息。

我真的更喜欢使用串行事件来处理传入的消息。任何有关如何执行此操作的信息或 Java 代码将不胜感激。

【问题讨论】:

    标签: java serial-port sms


    【解决方案1】:

    看看org.smslib:http://smslib.org/

    此处使用该库的示例: https://groups.google.com/forum/#!topic/smslib/6b4dR5pJjBY

    或者,如果您真的需要单独使用 javax.commm - 一些示例代码可以帮助您入门:

    http://www.java2s.com/Code/JavaAPI/javax.comm/SerialPortaddEventListenerSerialPortEventListenerarg0.htm

    特别是:

    你需要打电话 SerialPort.addEventListener(SerialPortEventListener arg0) 然后serialPort.notifyOnDataAvailable(true);

    设置完成后,您可以像这样处理SerialPortEventListener 的回调:

    public void serialEvent(SerialPortEvent event) {
      switch (event.getEventType()) {
      case SerialPortEvent.BI:
      case SerialPortEvent.OE:
      case SerialPortEvent.FE:
      case SerialPortEvent.PE:
      case SerialPortEvent.CD:
      case SerialPortEvent.CTS:
      case SerialPortEvent.DSR:
      case SerialPortEvent.RI:
      case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
        break;
      case SerialPortEvent.DATA_AVAILABLE:
        byte[] readBuffer = new byte[20];
    
        try {
          while (inputStream.available() > 0) {
            int numBytes = inputStream.read(readBuffer);
          }   
          System.out.print(new String(readBuffer));
        } catch (IOException e) {
        }   
        break;
      }   
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-09
      • 1970-01-01
      • 2012-12-30
      • 2012-08-04
      • 2021-08-11
      • 2016-11-30
      • 2021-09-26
      • 2015-12-10
      • 1970-01-01
      相关资源
      最近更新 更多