短信 猫开发模块使用了rxtx 和 smslib 这两种开源代码
Rxtx是用于comm端口调用
Smslib是在rxtx的基础上,调用短信_猫,使用AT指令来进行短信的发送接收等操作。
注意:
每次系统重启或者插拔短信_猫后,都要设置拥有者
chown dgsun /dev/ttyUSB0 (root 权限运行,dgsun是用户)
设置完后,使用minicom 看看该用户是否有权限使用该端口
1,配置RXTX
配置主要配置两个文件
一个是 Windows的dll文件 linux下的.so
另一个是
1.1 windows
rxtx-2.2pre2-bins\win32目录下的 rxtxSerial.dll
将rxtxSerial.dll复制到 JAVA_HOME\bin目录下
将RXTXcomm.jar复制到 JAVA_HOME\jre\lib\ext目录下
如果使用myeclipse开发则需要修改myeclipse使用的jdk。
Myeclipse自带一个jdk,要改为JAVA_HOME下的jdk
1.2 linux
由于使用的是centos 64位系统,所以
复制rxtx-2.2pre2-bins\x86_64-unknown-linux-gnu目录下的librxtxSerial.so
将librxtxSerial.so复制到 JAVA_HOME/jre/lib/amd64中
将RXTXcomm.jar复制到 JAVA_HOME/jre/lib/ext目录下
这个目录有可能各不相同
http://blog.csdn.net/iamfafa/article/details/6340057
如果找不到librxtxSerial.so则会报错
java.lang.UnsatisfiedLinkError: no XXX in java.library.path
这个时候可以写一段代码来查看java.library.path的位置
System.out.println( System.getProperty("java.library.path"));
在打印出的位置中加入librxtxSerial.so即可
2 配置SMSLIB
将smslib目录下的jar包加入到项目中
3 发送短信
接下来就是在代码中使用smslib调用短信 猫发送短信
代码可见src目录下 SmsMain.java 和 sms.properties
sms.properties配置了短信 猫的参数。 在windows下和在linux下是不同的,
我测试的时候windows下使用的是com5端口,这个可以再设备管理器中查看到;
在linux下使用的是 /dev/ttyUSB0,这个我是使用minicom一个一个在/dev/下找的
很奇怪,我使用的是wavecom模块的短信 猫,在插入移动卡的时候,manufacutrer设置了wavecom ,发送短信一切正常。当我换了一张联通的gsm卡的时候,就无法发短信了,只有不填,调用默认驱动才可以发短信。所以该处都默认为不填。
需要发短信的时候只要调用 SmsMain的sendSms方法
static boolean sendSms(String mobile, String content)
4 附录
Minicom使用
首先 minicom –s 对minicom 进行配置,相关配置可以再网上查找介绍
主要是修改 Serial port setup, 修改完后save setup as dfl进行保存。
Exit 后,如果配置短信 猫正确的话,就可以进入到 指令行了
输入AT,回车,页面打印OK
如果ATD133*******; 就可以对该电话号码进行拨号。 注意结尾的分号不可少。