java利用smslib发送短信

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangzl0123/archive/2010/03/02/5339263.aspx

 

java利用smslib发送短信.

自己写一个小程序,我在java1.6.0_10;smslib-v3.4.5下运行成功. 可以我的资源里面下载.

http://hi.csdn.net/link.php?url=http://yangzl0123.download.csdn.net

,主要是以下几个类.
Level_Final_Serial.java:串口底层操作
Serial_For_Smslib.java:对Level_Final_Serial的进一步封装,可以直接发送和接受串口信息.
如果要发送AT指令,需要先转换成相应的Ascii码.如: 发送AT指令A(acsii:65)T(ascii:84)回车(ascii:13)
char[] atOrder = {65, 84 ,13};  smslib_test.writeByte(atOrder);

Sms-Test修改版.rar,修改后:  

   String atCommand = "AT\r";  // 发送AT指令(加换行符号\r)
   char[] atOrder = atCommand.toCharArray();

   smslib_test.writeByte(atOrder);

  // 读取数据
  char[] rsByte = final_Level.readPackData();
  if (rsByte != null){
   for (char c : rsByte) {
    rsStr += c;
   }
   if (rsStr.indexOf("OK")>0){
    System.out.println("找到" + portStr + ":短信模块串口");
    rsbool = true;
   }

}
SmsService.java:smslib的封装
SmsSendJob.java:程序的运行实例(向10086发送11,查询余额,能发能收)

程序不完善,是有时候有异常出现,查了质料后还是无法解决:
程序中有时候会出现异常:
 

警告: GTW: SMSLINK: Ignoring InterruptedException in Queue.peek().
java.lang.InterruptedException
 at java.lang.Object.wait(Native Method)
 at org.smslib.modem.AModemDriver$CharQueue.peek(AModemDriver.java:556)
 at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:323)
 at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:352)
 at org.smslib.modem.athandler.ATHandler.isAlive(ATHandler.java:123)
 at org.smslib.modem.AModemDriver$KeepAlive.process(AModemDriver.java:678)
 at org.smslib.threading.AServiceThread.run(AServiceThread.java:117)

如果知道怎么做,或者有更好的思路发送短信,还请多多指教。

参考:http://osum.sun.com/profiles/blogs/java-shi-yong-smslibtong-guo

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangzl0123/archive/2010/03/02/5339263.aspx

你可能感兴趣的:(java,C++,c,PHP,.net)