之前自己写了个收发短讯的java program,用串口线直接连接gsm,通过向串口写AT command来实现短信的收发。这样做简单的测试还算ok,但是要自己分析at command来收取短信,实在是麻烦。

后来网上找到了一个SMSLib,安装好之后,很方便,收到短信,SMSLib会直接把收到的bytes封装成一个InBoundMessage类,程序里面注册一个监听对象,就能直接收到message。

可以参考http://smslib.org/doc/installation/ , 把需要的包先下载过来。

下面是一些安装的细节(xp环境下安装):

1. 首先安装NetBeans + JDK.

2. 再参考http://life173.blog.51cto.com/2035365/476353,安装 java的串口包。

3. 把下载的其他包(commons-net-3.0.1.jar, jsmpp-2.1.0.jar, log4j-1.2.16.jar),复制到%JDK_HOME%\jre\lib\ext\目录下. 

4. copy  %JDK_HOME%\lib\目录下的tools.jar到 %JDK_HOME%\jre\lib\ext\目录下,这个包主要是使用 Apache ANT来build SMSLib源码的时候用到的。

5. 下载过来的SMSLib的zip文件中(\SMSLib\dist\lib),包含了smslib-3.5.1.jar, 把这个包加到NetBeans项目的libraries里面.

上面5做完成之后,就可以使用SMSLib了。(上面一些包,是build smslib源码的时候用的,具体用途,可以参考smslib网站)

SMSLib的zip文件中,包含了一些测试的源码,copy \SMSLib\src\java\examples\modem\目录下的三个java类到你的NetBeans项目中,改下各个类里面的串口名字的参数,波特率,还有短信中心地址,(发短信的话,还需要修改发送短信对象的号码),就可以做测试了,我试了ReadMessages和SendMessages两个类,都成功,满不错的一个短信库。