实现这个功能,需要两个jar包,可以到http://code.google.com/p/smslib下载smslib-v3.3.0-B2-bin.zip和javacomm20-win32.zip。
首先,把smslib-v3.3.0-B2-bin.zip解开,在smslib\dist\lib目录下找到smslib-3.3.0b2.jar,放入工程lib中,再把javacomm20-win32.zip解开,里面的comm.jar需要放到工程lib下,javax.comm.properties放到%JAVA_HOME%/jre/lib下,win32com.dll放到%JAVA_HOME%/jre/bin下。路径放错了,调用起来就会报错的。环境配置好了以后,使用起来很简单,贴下我的代码:
package com.cn;
import org.smslib.AGateway;
import org.smslib.IOutboundMessageNotification;
import org.smslib.Library;
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.Message.MessageEncodings;
import org.smslib.modem.SerialModemGateway;
public class SendMessage
{
public void doIt() throws Exception
{
Service srv;
OutboundMessage msg;
OutboundNotification outboundNotification = new OutboundNotification();
System.out.println("Example: Send message from a serial gsm modem.");
System.out.println(Library.getLibraryDescription());
System.out.println("Version: " + Library.getLibraryVersion());
srv = new Service();
SerialModemGateway gateway = new SerialModemGateway("modem.com17", "COM17", 9600, "wavecom", "");//com名称,串口号,破特率,连接设备名称,设备型号
gateway.setInbound(true);//设置网关可以写入信息
gateway.setOutbound(true);//设置网关可以读入信息
gateway.setSimPin("0000");
//gateway.setSmscNumber("555555");
gateway.setOutboundNotification(outboundNotification);
srv.addGateway(gateway);//添加网光
System.out.println("初始化成功,准备开启服务");
srv.startService();//初始化网关
msg = new OutboundMessage("13426478376", "这个是用java发的中文短信放松放松dfgdfsdf的!");//手机号码,和短信内容
msg.setEncoding(MessageEncodings.ENCUCS2);//这句话是发中文短信必须的
srv.sendMessage(msg);//执行发送
System.out.println(msg);
System.out.println("Now Sleeping - Hit to terminate.");
//System.in.read();
srv.stopService();
}
public class OutboundNotification implements IOutboundMessageNotification
{
public void process(String gatewayId, OutboundMessage msg)
{
System.out.println("Outbound handler called from Gateway: " + gatewayId);
System.out.println(msg);
}
}
public static void main(String args[])
{
SendMessage app = new SendMessage();
try
{
app.doIt();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
分享到:
2011-10-25 10:47
浏览 2064
评论