关于短信猫发送短信的问题

lisf_1974 2014-09-12 09:38:19
最近我在网上找了一个调用短信猫发送短信的程序,但在使用过程中,有时发送成功,有时发送不成功。错误如下:
org.smslib.GatewayException: GSM: Invalid CREG response.
at org.smslib.modem.AModemDriver.waitForNetworkRegistration(AModemDriver
.java:396)
at org.smslib.modem.AModemDriver.connect(AModemDriver.java:149)
at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:111)
at org.smslib.Service$1Starter.run(Service.java:227)
换了SIM卡也不行。请大家给指点,程序如下:
package com.serial;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org .smslib .IOutboundMessageNotification;
import org .smslib .OutboundMessage;
import org .smslib .Service ;
import org .smslib .Message.MessageEncodings;
import org .smslib .modem.SerialModemGateway;

/**
* 短信发送测试类
* @author mazq
*
*/
public class SMSUtil
{
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 void sendSMS(String mobilePhones,String content)
{
//System.out.println(mobilePhones+"--"+content);
Service srv;
OutboundMessage msg;
OutboundNotification outboundNotification = new OutboundNotification();
srv = new Service();
SerialModemGateway gateway = new SerialModemGateway( "modem.com1","COM3",9600,"wavecom","PL2302" );
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setSimPin("0000");
gateway.setOutboundNotification(outboundNotification);
srv.addGateway(gateway);
System.out.println("初始化成功,准备开启服务");

try
{
srv.startService();
System.out.println("服务启动成功");
String[] phones = mobilePhones.split(",");
for(int i= 0;i<phones.length;i++)
{
msg = new OutboundMessage(phones[i],content); //手机号码,和短信内容
msg.setEncoding(MessageEncodings.ENCUCS2); //这句话是发中文短信必须的
srv.sendMessage(msg);
System.out.println(phones[i]+ " == " +content);
}
//srv.stopService();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
System.out.println("关闭服务......");
srv.stopService();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}

public static void main(String[] args)
{
SMSUtil util = new SMSUtil();
util.sendSMS("137XXXXXXXX","测试短信");
}
}
...全文
1108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
skgary 2014-09-13
  • 打赏
  • 举报
回复
1. gateway对像会不会有什么 close方法?我意思是,你程序跑了没有释放,下一次再跑,前一次跑的还没有完全退出? 2. 或者,你初始化的时候,加个 while true,直接初始化成功?然后看看多发几条,会不会还有发送不成功 的?判断一下是是不是只要初始化成功,后面都是成功的。。。
lisf_1974 2014-09-13
  • 打赏
  • 举报
回复
如果有更好的方法,请指点
lisf_1974 2014-09-13
  • 打赏
  • 举报
回复
这是一个简单的单进程,发完一次就退出了,不得每次都要NEW 一个网关吗?
skgary 2014-09-13
  • 打赏
  • 举报
回复
你不用每次发送都new一个gateway 对像吧。。。
lisf_1974 2014-09-13
  • 打赏
  • 举报
回复
换过SIM卡了,还是时断时续的。再说了,用这个短信猫自带的“短信王”软件,是可以正常发送的
飞翔的卡其啦 2014-09-12
  • 打赏
  • 举报
回复
应该还会SIM卡的问题吧,SIM得不到响应

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧