我正在用Java编写一个程序来发送和接收SMS文本消息。我正在使用AT命令和蓝牙连接与我的诺基亚套装。我写了一个类来发送消息。但我不知道如何获得Java串行事件通知我,当我收到一条短信。如何使用Javax.Comm串行事件监听器接收SMS消息
为了在接收消息的同时向手机写入相应的AT命令,我写了一个类,每隔10秒向手机发送一条换行语句,以显示任何新消息。
我真的更喜欢使用串行事件处理传入消息。任何有关如何执行此操作的信息或Java代码都将受到极大的赞赏。
我正在用Java编写一个程序来发送和接收SMS文本消息。我正在使用AT命令和蓝牙连接与我的诺基亚套装。我写了一个类来发送消息。但我不知道如何获得Java串行事件通知我,当我收到一条短信。如何使用Javax.Comm串行事件监听器接收SMS消息
为了在接收消息的同时向手机写入相应的AT命令,我写了一个类,每隔10秒向手机发送一条换行语句,以显示任何新消息。
我真的更喜欢使用串行事件处理传入消息。任何有关如何执行此操作的信息或Java代码都将受到极大的赞赏。
看看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;
}
}