Welcome 微信登录

首页 / 操作系统 / Linux / Java利用smslib发送短信

自己写一个小程序,我在java1.6.0_10;smslib-v3.4.5下运行成功. 主要是以下几个类. 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 ";  // 发送AT指令(加换行符号 ) 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) 如果知道怎么做,或者有更好的思路发送短信,还请多多指教。