我正在用Java编写程序来发送和接收短信。我正在使用AT命令和我的诺基亚设备的蓝牙连接。我写了一个发送消息的类。但是,当我收到短信时,我无法弄清楚如何让java串行事件通知我。
为了在我正在向手机写入相应的AT命令时接收消息,然后我写了一个类,每隔10秒向手机发送一行换行语句,显示任何新消息。
我更喜欢使用串行事件处理传入的消息。任何有关如何执行此操作或Java代码的信息都将非常受欢迎。
答案 0 :(得分:1)
看看org.smslib:http://smslib.org/
此处使用该库的示例: https://groups.google.com/forum/#!topic/smslib/6b4dR5pJjBY
或者,如果您确实需要单独使用javax.commm,那么可以使用一些示例代码:
特别是:
你需要打电话
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;
}
}