我正在尝试开发一个应用程序,让我使用连接在 USB 端口上的 GSM 加密狗发送短信。我已经下载了 javaxcomm api 并将文件放在适当的文件夹中。由于我的操作系统是 Windows 7(64 位),所以我下载了 jdk 的 32 位版本。但是,我仍然无法继续前进。目前我遇到了 NoSuchPortException。
错误出现在这一行周围:
portId = CommPortIdentifier.getPortIdentifier(parameters.getPortName());
这是完整的代码。
public class SMSClient implements Runnable{
public final static int SYNCHRONOUS=0;
public final static int ASYNCHRONOUS=1;
private Thread myThread=null;
private int mode=-1;
private String recipient=null;
private String message=null;
public int status=-1;
public long messageNo=-1;
public SMSClient(int mode) {
this.mode=mode;
}
public int sendMessage (String recipient, String message){
this.recipient=recipient;
this.message=message;
//System.out.println("recipient: " + recipient + " message: " + message);
myThread = new Thread(this);
myThread.start();
// run();
return status;
}
public void run(){
Sender aSender = new Sender(recipient,message);
try{
//send message
aSender.send ();
// System.out.println("sending ... ");
//in SYNCHRONOUS mode wait for return : 0 for OK,
//-2 for timeout, -1 for other errors
if (mode==SYNCHRONOUS) {
while (aSender.status == -1){
myThread.sleep (1000);
}
}
if (aSender.status == 0) messageNo=aSender.messageNo ;
}catch (Exception e){
e.printStackTrace();
}
this.status=aSender.status ;
aSender=null;
}
}