我正在用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;
}
}