短信 猫开发模块使用了rxtx 和 smslib 这两种开源代码
Rxtx是用于comm端口调用
Smslib是在rxtx的基础上,调用短信_猫,使用AT指令来进行短信的发送接收等操作。
注意:
每次系统重启或者插拔短信_猫后,都要设置拥有者
chown dgsun /dev/ttyUSB0 (root 权限运行,dgsun是用户)
设置完后,使用minicom 看看该用户是否有权限使用该端口
1,配置RXTX
配置主要配置两个文件
一个是 Windows的dll文件<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:79.5pt; height:36.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image001.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]--> linux下的.so <!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style='width:90.75pt;height:36.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image003.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
另一个是 <!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:68.25pt;height:36.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image005.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
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
<!--[if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" style='width:234pt;height:180.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
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包加入到项目中
<!--[if gte vml 1]><v:shape id="_x0000_i1029" type="#_x0000_t75" style='width:117.75pt;height:69.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
3 发送短信
接下来就是在代码中使用smslib调用短信 猫发送短信
代码可见src目录下 SmsMain.java 和 sms.properties
sms.properties配置了短信 猫的参数。 在windows下和在linux下是不同的,
我测试的时候windows下使用的是com5端口,这个可以再设备管理器中查看到;
在linux下使用的是 /dev/ttyUSB0,这个我是使用minicom一个一个在/dev/下找的
<!--[if gte vml 1]><v:shape id="_x0000_i1030" type="#_x0000_t75" style='width:189pt;height:132.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
<!--[if gte vml 1]><v:shape id="_x0000_i1031" type="#_x0000_t75" style='width:304.5pt;height:141.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image013.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
很奇怪,我使用的是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*******; 就可以对该电话号码进行拨号。 注意结尾的分号不可少。
相关推荐
网上很多资料都是使用的smslib的jar包来发送短信,但是这种方式只支持32的jdk,而我的系统使用的是linux的64位环境,所以最后采用了用RXTX串口通讯工具直接向短信猫发送AT指令的方式实现。 1. smslib.jar收发短信 ...
在实际开发中,首先需要在项目中引入SMSLIB的jar包,然后通过RXTX库配置串口通信。创建SMSLIB的实例,设置短信猫的相关参数(如波特率、数据位、校验位等),初始化并连接设备。接着,可以利用SMSLIB提供的API来编写...
总结来说,"整理smslib RXTX发送短信64位环境"这个主题涉及到的关键知识点包括:64位系统兼容性、RXTX库的安装和配置、smslib的使用、串口通信参数设置、短信猫的连接、短信的发送以及错误处理。在实践过程中,务必...
本文将深入探讨如何使用smslib、RXTX和COMM库来实现短信发送功能,结合提供的压缩包文件,我们将对这些工具进行详细的解析。 首先,smslib是一个开源的Java库,用于构建短信服务解决方案。它支持多种协议,如GSM、...
Java 使用SMSLib通过串口通讯收发短信是一种常见的在Java应用程序中实现短信功能的方法,尤其适用于需要集成到系统中批量发送或接收短信的场景。SMSLib是一个强大的Java库,允许开发者通过兼容的GSM调制解调器或GSM...
RXTX是Java的一个串行通信库,它提供了与操作系统底层串口通信的接口。在SMSLIB中,RXTX用于与短信猫(GSM调制解调器)进行物理连接,实现数据的收发。 **短信猫开发** 短信猫,即GSM调制解调器,是一种可以通过...
【SMSLib实现Java短信收发的功能】 SMSLib是一个开源的Java库,专门用于实现通过GSM调制解调器或SMS网关进行短信的发送和接收。它为开发者提供了便捷的API,使得无需深入理解串口通信、AT指令或者SMPP协议等底层...
在IT行业中,短信服务常用于验证码验证、通知提醒等场景,而`smslib`是一个流行的Java库,专门用于实现这样的功能。本篇文章将详细讲解基于`smslib`的短信发送案例,以及与之相关的`Rxtx`库的使用。 首先,`smslib`...
在Java中,我们可以使用`javax.comm`库或者第三方库如RXTX来实现串口通信。但是,由于`javax.comm`库已不再维护,推荐使用RXTX库,它提供了更广泛的平台支持和更好的性能。安装RXTX库后,需要将其JAR文件添加到项目...
在Java中,通常使用`javax.comm`库来处理串行通信,但由于这个库在Java 6之后不再被官方维护,SMSLib使用了替代方案,如RXTX库,以实现更稳定的串口通信。RXTX是一个开源的、跨平台的Java库,能够提供与底层操作系统...
在Java开发环境中,为了实现与短信猫的串口通信,通常会用到特定的库和DLL文件。在你提供的文件中,包含了实现这一功能的关键组件。 首先,`smslib-3.4.6.jar`是SMSLib的Java库,这是一个开源的短信服务库,支持...
RXTX提供了与操作系统底层串口通信的接口,使得Java应用程序能够控制串行端口,从而与短信猫设备建立连接。 `sms.zip` 文件可能是包含Java代码示例或更多关于短信猫操作的资源,可能包括如何初始化设备、发送短信、...
Java并不直接支持硬件设备的访问,但它可以通过Java Communications API(CommAPI)或者第三方库如RXTX来实现串口通信,这是与短信猫设备交互的基础。CommAPI提供了对串行端口和并行端口的访问,允许Java应用程序...
在实际应用中,你可能会使用更高级的库,如Apache的smslib,它封装了Java Comm API的复杂性,提供了更方便的API来发送短信。此外,对于大规模的应用,可能还需要考虑使用短信网关服务,通过HTTP接口直接与提供商进行...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...