使用gsm调制解调器发送sms消息的Java错误

时间:2014-05-29 11:00:06

标签: java gsm modem

您好,我正在尝试使用带有GSM调制解调器的Java发送短信 我正在通过以下网址学习:http://www.codeproject.com/Tips/492716/How-to-send-SMS-using-Java-with-a-HSDPA-Dongle 这是我的代码:

import com.harshadura.gsm.smsdura.GsmModem;

public class TestSMS {
private static String port = "COM1"; //Modem Port.
private static int bitRate = 9600; //this is also optional. leave as it is.
private static String modemName = "ZTE"; //this is optional.
private static String modemPin = "0000"; //Pin code if any have assigned to the modem.
private static String SMSC = "+9477000003"; //Message Center Number ex. Mobitel

public static void main(String[] args) throws Exception {
    GsmModem gsmModem = new GsmModem();
    GsmModem.configModem(port, bitRate, modemName, modemPin, SMSC);
    gsmModem.Sender("+917350320106", "Test Message"); // (tp, msg)
}
}

我已将各种库添加到项目的构建路径中:

comm.jar
commons-net-3.0.1.jar
smsdura-1.0.jar
RXTXcomm.jar

但是,当我运行项目时,我收到此错误:  线程主org.smslib.GatewayException中的异常:Comm库异常:java.lang.RuntimeException:javax.comm.NoSuchPortException

请帮忙

2 个答案:

答案 0 :(得分:1)

首先填写此行中的参数" GsmModem.configModem(port,bitRate,modemName,modemPin,SMSC);"

1.port 只需右键单击MyComputer Icon>去Mange>然后搜索调制解调器>然后它会弹出一个带有几个标签的界面。那么你可以简单地注意到他们名为port的名字。前面有端口号。现在你知道了端口号。将其插入代码中。 2.Modem名称      是一个可选的东西 3.Bit率?     保持原状。或者换成合适的。数字将根据调制解调器调制解调器而改变 4.有些调制解调器正在使用PIN码进行安全保护。你的人也用这样的针吗?如果是这样,请将其插入代码中。如果您的调制解调器中有代码 5.填写您的网络服务中心否...检查您的信息设置..

答案 1 :(得分:0)

由于多种原因可能会发生此错误。

  1. 您的加密狗软件可能已打开。所以关闭它,使用任务管理器仔细检查它是否作为后台服务运行。如果它仍在运行,请将其杀死。
  2. 您对JVM的SMSLib配置未受到正确影响。因此,再次检查所需的文件是否存在。您需要将它们放在JDK和JRE中,请参阅 1
  3. 这个程序不适用于64位JVM,但它并没有说你不能在64位机器上使用它。您已在计算机上安装了32位JDK,删除64位JDK以防止混淆。
  4. 您要访问的端口可能在系统中确实不可用。您可以通过以下方式简单地检查加密狗端口:右键单击计算机图标然后去管理>然后选择设备管理器>然后展开Ports(COM LPT)列>您将看到设备的应用程序接口端口。多数民众赞成你必须使用的端口。