短信猫(GSM MODEM)win64_Java开发指南
2017-12-26 18:21
253 查看
**开发所需文件**:
smslib-3.5.3.jar
短信猫二次开发包(可前往http://smslib.org官网下载最新版本)
log4j-1.2.14.jar
打印日志使用(版本不限)
RXTXcomm.jar 串口通讯Java类库(可前往http://rxtx.qbang.org官网下载适用版本)
rxtxSerial.dll和rxtxParallel.dll
动态链接库文件
** 开整 **
1、先配置环境(本人使用jdk1.8.0_131)
将RXTXcomm.jar 文件放至
\jdk1.8.0_131\jre\lib\ext目录下
将rxtxSerial.dll和rxtxParallel.dll
文件放至
\jdk1.8.0_131\jre\bin 目录下
2、项目导入依赖jar包
将smslib-3.5.3.jar和log4j-1.2.14.jar
两个开发依赖包导入项目(这个都会的哈)
3、短信猫设备连接电脑
将短信猫设备通过USB/串口 连接到电脑
查看是否连接(Win7系统):
win+R-->系统属性-->设备管理器-->端口
注:图中的( COM3
)为串口号
4、编写测试程序
执行结果为:--》
5、编写发送短信程序
执行结果为:--》
完成!
smslib-3.5.3.jar
短信猫二次开发包(可前往http://smslib.org官网下载最新版本)
log4j-1.2.14.jar
打印日志使用(版本不限)
RXTXcomm.jar 串口通讯Java类库(可前往http://rxtx.qbang.org官网下载适用版本)
rxtxSerial.dll和rxtxParallel.dll
动态链接库文件
** 开整 **
1、先配置环境(本人使用jdk1.8.0_131)
将RXTXcomm.jar 文件放至
\jdk1.8.0_131\jre\lib\ext目录下
将rxtxSerial.dll和rxtxParallel.dll
文件放至
\jdk1.8.0_131\jre\bin 目录下
2、项目导入依赖jar包
将smslib-3.5.3.jar和log4j-1.2.14.jar
两个开发依赖包导入项目(这个都会的哈)
3、短信猫设备连接电脑
将短信猫设备通过USB/串口 连接到电脑
查看是否连接(Win7系统):
win+R-->系统属性-->设备管理器-->端口
注:图中的( COM3
)为串口号
4、编写测试程序
package com.ultrapower.sms; import org.smslib.helper.CommPortIdentifier; import org.smslib.helper.SerialPort; import java.io.*; import java.util.Enumeration; public class CommTest { static CommPortIdentifier portId; static Enumeration portList; static int bauds[] = { 9600, 19200, 57600, 115200 }; public static void main(String[] args) { portList = CommPortIdentifier.getPortIdentifiers(); System.out.println("金笛短信设备端口连接测试..."); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { System.out.println("找到串口: " + portId.getName()); for (int i = 0; i < bauds.length; i++) { System.out.print(" Trying at " + bauds[i] + "..."); try { SerialPort serialPort; InputStream inStream; OutputStream outStream; int c; String response; serialPort = (SerialPort) port 4000 Id.open("SMSLibCommTester", 1971); serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN); serialPort.setSerialPortParams(bauds[i], SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); inStream = serialPort.getInputStream(); outStream = serialPort.getOutputStream(); serialPort.enableReceiveTimeout(1000); c = inStream.read(); while (c != -1) { c = inStream.read(); } outStream.write('A'); outStream.write('T'); outStream.write('\r'); try { Thread.sleep(1000); } catch (Exception e) { } response = ""; c = inStream.read(); while (c != -1) { response += (char) c; c = inStream.read(); } if (response.indexOf("OK") >= 0) { try { System.out.print(" 获取设备信息..."); outStream.write('A'); outStream.write('T'); outStream.write('+'); outStream.write('C'); outStream.write('G'); outStream.write('M'); outStream.write('M'); outStream.write('\r'); response = ""; c = inStream.read(); while (c != -1) { response += (char) c; c = inStream.read(); } System.out.println(" 发现设备: " + response.replaceAll("\\s+OK\\s+", "").replaceAll("\n", "").replaceAll("\r", "")); } catch (Exception e) { System.out.println(" 没有发现设备!"); } } else { System.out.println(" 没有发现设备!"); }; serialPort.close(); } catch (Exception e) { System.out.println(" 没有发现设备!"); } } } } } }
执行结果为:--》
5、编写发送短信程序
package com.ultrapower.sms; import org.smslib.Message; import org.smslib.OutboundMessage; import org.smslib.Service; import org.smslib.modem.SerialModemGateway; import java.time.LocalDateTime; public class SendGsm { public static boolean SMSReminds(String phone, String content) throws Exception{ // 1、连接网关的id // 2、com口名称,如COM1或/dev/ttyS1(根据实际情况修改 // 3、串口波特率,如9600(根据实际情况修改) // 4、开发商 // 5、型号 SerialModemGateway gateway = new SerialModemGateway("model.com3", "COM3", 9600, "SIEMENS","HT-S3100"); // 设置true,表示该网关可以接收短信 gateway.setInbound(true); // 设置true,表示该网关可以发送短信 gateway.setOutbound(true); // -----------------创建发送短信的服务(它是单例的)---------------- Service service = Service.getInstance(); Service.getInstance().S.SERIAL_POLLING = true; boolean result; try { // ---------------------- 将设备加到服务中---------------------- service.addGateway(gateway); // ------------------------- 启动服务 ------------------------- service.startService(); // ------------------------- 发送短信 ------------------------- OutboundMessage msg = new OutboundMessage(phone , content); msg.setEncoding(Message.MessageEncodings. ENCUCS2); System.out.println("startDate====="+ LocalDateTime.now().toString()); result = service.sendMessage(msg); System.out.println("endDate====="+ LocalDateTime.now().toString()); // ------------------------- 关闭服务 ------------------------- service.stopService(); service .removeGateway(gateway); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); service.stopService(); service .removeGateway(gateway); return false; } return result; } public static void main(String[] args) { try { boolean sendResult = SMSReminds("17631357071", "Java发送短信--测试短信猫-验证码 123456"); System.out.println("sendResult = [" + sendResult + "]"); } catch (Exception e) { e.printStackTrace(); } } }
执行结果为:--》
完成!
相关文章推荐
- 短信猫(GSM MODEM)linux64_Java开发指南
- 基于GSM MODEM短信猫二次开发说明和免费二次开发包提供C#、VC、Delphi、linx、JAVA、PB等语言源程序
- JSP+JAVABEAN+SERVLET开发环境配置指南
- 面向 Java 开发人员的 db4o 指南: 简介和概览
- SCA Java 开发指南
- 面向Java开发人员指南:数组和集合
- java 移动开发入门指南
- Sun Java Wireless Toolkit 开发手机程序入门指南(1)
- ASE12.5内嵌JAVA开发指南
- java开发能力指南
- 基于短信网关WAP推送的实现-Java基础-Java-编程开发
- 关于用JAVA开发短信方面的知识
- Forte for Java开发指南
- 面向 Java 开发人员的 Scala 指南:关于特征和行为
- 面向 Java 开发人员的 db4o 指南
- velocity java开发指南
- ASE12.5数据库内嵌JAVA开发指南
- JSP+JAVABEAN+SERVLET开发环境配置指南
- Sun Java Wireless Toolkit 开发手机程序入门指南(2)
- JAVA开发相关的各类软件包下载及使用指南(jspSmartUpload)