步骤1.将插入到USB接口中,可以先不放sim卡,然后打开设备管理器,里面会有要安装的驱动的显示,为了安装驱动简单,可以下载驱动精灵来自动安装,按装完成后,
安装完毕后,打开设备管理器。如图
com1即为端口,如要修改端口号,则在属性,高级里修改端口号。
步骤2:
下载两个包:javacomm20-win32.zip和smslib-v3.5.1.zip
配置系统环境变量 %JDK_HOME%,然后拷贝所需的文件至
%JDK_HOME%\jre\bin\win32com.dll
%JDK_HOME%\jre\lib\javax.comm.properties
JAVA_HOME是jdk的路径,而非jre,
还有特别要注意:用myeclipse8.5等的朋友要注意了你看看你用的ide是否是用自己自带的jdk的,可以将上面的文件拷贝到该ide自带的jdk相应的目录下
3.新建工程
先建一个CommTest 类来测试端口是否能找到,若没找到,则前面的配置还是有问题的,继续配置吧
// JindiSMS v3.1 // 该程序主要用于GSM Modem 串口连接速率测试。
import gnu.io.*;
import javax.comm.*;
import java.util.*;
import java.io.*;
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) portId.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();
}
f (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(" 没有发现设备!");
} } } } } }
找到端口后就可以来测试发接短信了
1.发短信
// JindiSMS v3.1 // 该程序主要用于GSM Modem短信发送示例。 为节省您的开发时间,请配合金笛短信设备以达到最佳效果。
import cn.sendsms.*;
import java.util.*; import java.io.*; import java.net.*;
public class SendMessage { public void doIt() throws Exception { Service srv; OutboundMessage msg; // SerialModemGateway gateway=null; OutboundNotification outboundNotification = new OutboundNotification();
System.out.println("示例: 通过金笛串口发送短信."); System.out.println(Library.getLibraryDescription()); System.out.println("版本: " + Library.getLibraryVersion());
srv = new Service(); SerialModemGateway gateway = new SerialModemGateway("jindi", "COM3", 115200, "wavecom", "M1306B", srv.getLogger()); gateway.setInbound(true); gateway.setOutbound(true); gateway.setSimPin("0000"); gateway.setOutboundNotification(outboundNotification);
srv.addGateway(gateway);
srv.startService(); System.out.println(); System.out.println("GSM Modem信息:"); System.out.println(" 厂家: " + gateway.getManufacturer()); System.out.println(" 型号: " + gateway.getModel()); System.out.println(" 序列号: " + gateway.getSerialNo());
System.out.println(" SIM IMSI: " + gateway.getImsi()); System.out.println(" 信号强度: " + gateway.getSignalLevel() + "%"); System.out.println(" 电池容量: " + gateway.getBatteryLevel() + "%"); System.out.println();
//15988765103 //发送短信(异步发送,待发送短信进入队列,发送时不做任何等待) msg = new OutboundMessage("15988765103", "Wrong number tl!"); msg.setPriority(msg.getPriority().HIGH); srv.queueMessage(msg, gateway.getGatewayId()); msg = new OutboundMessage("15067851967", "Wrong number
xm!"); msg.setPriority(msg.getPriority().LOW); srv.queueMessage(msg, gateway.getGatewayId()); System.out.println("进入等待状态... - 按回车键退出."); System.in.read();
srv.stopService(); }
public class OutboundNotification implements IOutboundMessageNotification { public void process(String gatewayId, OutboundMessage msg) { System.out.println("发送状态: " + gatewayId); System.out.println(msg); } }
public static void main(String args[]) { SendMessage app = new SendMessage(); try { app.doIt(); } catch (Exception e) { e.printStackTrace(); } } }
2.收短信
// JindiSMS v3.1 // 该程序主要用于读取GSM Modem接收到的短信。
import java.util.*; import cn.sendsms.*;
public class ReadMessages { private Service srv;
public void doIt() throws Exception { List msgList; InboundNotification inboundNotification = new InboundNotification(); CallNotification callNotification = new CallNotification(); try { System.out.println("示例: 从串口短信设备读取短信."); System.out.println(Library.getLibraryDescription());
System.out.println("版本: " + Library.getLibraryVersion()); srv = new Service(); // 创建串口GSM modem连接通道. SerialModemGateway gateway = new SerialModemGateway("jindi", "COM5", 115200, "wavecom", "M1206B", srv.getLogger()); //设置通道是否接收短信 gateway.setInbound(true);
//设置通道是否可以发送短信 gateway.setOutbound(true); gateway.setSimPin("0000"); //设置短信到达后调用方法 gateway.setInboundNotification(inboundNotification); gateway.setCallNotification(callNotification); // 增加短信通道到服务对象 srv.addGateway(gateway); // 如果有多个设备,可以依次添加到服务对象。
// 启动服务! (连接到所有已定义的设备通道) srv.startService(); System.out.println(); System.out.println("GSM Modem 信息:"); System.out.println(" 厂家: " + gateway.getManufacturer()); System.out.println(" 型号: " + gateway.getModel()); System.out.println(" 序列号:
" + gateway.getSerialNo()); System.out.println(" SIM IMSI: " + gateway.getImsi()); System.out.println(" 信号强度: " + gateway.getSignalLevel() + "%"); System.out.println(" 电池容量: " + gateway.getBatteryLevel() + "%"); System.out.println(); // 读取短信.
msgList = new ArrayList(); srv.readMessages(msgList, MessageClasses.ALL); System.out.println(msgList.size()); for (int i = 0; i < msgList.size(); i++) System.out.println(msgList.get(i)); // 进入休眠状态. 如果有新短信进来,就会重新激活。 System.out.println("进入等待状态...
- 按 <enter>回车键退出."); System.in.read(); } catch (Exception e) { e.printStackTrace(); } finally { srv.stopService(); } }
public class InboundNotification implements IInboundMessageNotification { public void process(String gatewayId, MessageTypes msgType, String memLoc, int memIndex) { List msgList; if (msgType == MessageTypes.INBOUND) { System.out.println(">>>
监测到设备收到新的短信: " + gatewayId + " : " + memLoc + " @ " + memIndex); try { // Read... msgList = new ArrayList(); srv.readMessages(msgList, MessageClasses.UNREAD, gatewayId); for (int i = 0; i < msgList.size(); i++) System.out.println(msgList.get(i));
// ...and reply. // for (int i = 0; i < msgList.size(); i ++) // srv.sendMessage(new OutboundMessage(msgList.get(i).getOriginator(), "Got it!"), gatewayId); } catch (Exception e) { System.out.println("有异常..."); e.printStackTrace();
} } else if (msgType == MessageTypes.STATUSREPORT) { System.out.println(">>> 监测到设备收到短信状态报告: " + gatewayId + " : " + memLoc + " @ " + memIndex); } } }
public class CallNotification implements ICallNotification { public void process(String gatewayId, String callerId) { System.out.println(">>> 监测到有电话打入: " + gatewayId + " : " + callerId); } }
public static void main(String args[]) { ReadMessages app = new ReadMessages(); try { app.doIt(); } catch (Exception e) { e.printStackTrace(); } } }
分享到:
相关推荐
东莞金迪软件公司是一家致力于汽车服务行业(汽贸、汽修、汽配、美容、客户关系)专业管理软件研发的高科技民营软件开发公司。 软件版本:金迪4S管理软件; 金迪快修美容管理软件; 金迪汽修汽配管理软件; 金迪...
通过阅读金迪软件管理系统中会员卡快速操作指南,可让金迪软件用户快速掌握会员管理方面的内容!
金迪操作流程.pptx
最新金迪收费系统安装程序,敬请新老客户下载。
金迪短信猫接口开发说明,包括:数据库接口说明 和 URL 收发接口说明
金迪克:金迪克首次公开发行股票并在科创板上市招股说明书.PDF
金迪快修美容保养报警管理系统是一款汽车管理系统。 金迪快修美容保养报警管理系统具体功能有维修管理,配件进销存,财务管理,美容套餐卡,会员充值等等。...终身使用,方便快捷实用!稳定性强!
金迪4S汽修汽配管理软件是长沙市龙迪软件科技有限公司专门针对汽车服务行业所开发的一套管理系统
金迪售后用户手册.pdf
金迪汽修汽配管理软件是深圳市迪软技术开发有限公司专门针对汽车修理厂所开发的一套管理系统!
金迪汽修汽配管理软件方案.doc
金迪软件及数据库的安装.pdf
金迪控股公司材料检验标准.doc
金迪软件及数据库的安装借鉴.pdf
金迪克_-688670-公司深度研究:四价流感疫苗快速放量,品种不断丰富.pdf
生物医药行业疫苗批签发周度跟踪:智飞代理HPV已接近800万支,金迪克四价流感超百万支-1218-安信证券-13页.pdf
生物医药行业:疫苗批签发周度跟踪,金迪克四价流感首次批签发,九价HPV批签发48万支-1106-安信证券-14页.pdf
批量发送短信,经验证好用! 软件介绍: 金笛短信快车是一款专业级短信收发系统,它能自动快速地给多个手机发短信息(速度约为3秒/条)。 通过这个平台可以充分利用移动通讯公司提供的短信息服务功能,企业可定时、...
这是一个短信收发的例子,需要基于短信猫硬件设备支持
该软件实现汽车加油管理。历程统计等功能,能够在设定的历程里提醒驾驶人员对车辆保养,加油等