Java 为什么GSM调制解调器不响应程序,而是响应超级终端或docklight? 编辑:

Java 为什么GSM调制解调器不响应程序,而是响应超级终端或docklight? 编辑:,java,sms,gsm,modem,at-command,Java,Sms,Gsm,Modem,At Command,Im在java中开发短信应用程序,用于阅读短信。Im将AT命令发送到GSM模式以发送短信,消息已成功发送,但Im没有收到调制解调器的任何响应。如果我通过超级终端发送AT命令,Im将得到响应。确切的问题是什么 InputStream inputStream; OutputStream out; this.inputStream = serialPort.getInputStream(); this.

Im在java中开发短信应用程序,用于阅读短信。Im将AT命令发送到GSM模式以发送短信,消息已成功发送,但Im没有收到调制解调器的任何响应。如果我通过超级终端发送AT命令,Im将得到响应。确切的问题是什么

            InputStream inputStream;
            OutputStream out;


            this.inputStream = serialPort.getInputStream();
            this.out = serialPort.getOutputStream();
            out.write(("AT"+"\r").getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }
            out.write(("AT+CMGF=1"+"\r").getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }
            out.write(("AT+CMGS=\""+"+91xxxxxxxxxx"+"\""+"\r").getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }
            out.write(("TEST "+cntrlZ).getBytes());
            try {
                Thread.sleep(1500);
            } catch (InterruptedException ex) {
                Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
            }


 //Im using SerialPortEventListener to  read the input from modem
int a = inputStream.available();
System.out.println(inputStream.available() + "  BYTES AVAILABLE ");
inputStream.read(readBuffer, 0, a);

在发送每个AT命令后,我也尝试阅读,但我没有收到调制解调器的任何响应。

请确保您已经阅读,并且调制解调器已打开。不需要支持调制解调器,但可以立即消除兼容性问题

此外,您还应验证调制解调器是否正确连接。您可以通过直接对其执行某些操作。

设置串行端口的流量控制后,其工作正常

serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN |    SerialPort.FLOWCONTROL_RTSCTS_OUT);

您可以发布您的端口配置吗?调制解调器工作正常。我已经通过超级终端进行了检查。您使用的是Linux还是Windows?好的,请验证您是否遵循了安装过程中的所有步骤。当SMSlib缺少一些库时,我遇到了类似的问题,但那是在Linux下。我也在使用同一个应用程序,但无法发送消息,因为我已成功获取端口号…请帮助我解决我的问题。。。