1
SMS를 보내려는 프로그램을 만들려고합니다. 프로그램을 작성했지만 메시지를 보내지 못했습니다. 내 프로그램이 내 컴퓨터의 포트 COM에 At 명령을 보내지 만 gsm 모뎀에서 응답을받지 못합니다. COM 터미널 (Temp pro ...)을 사용하여 at 명령과 함께 sm을 보내면 sms를 보낼 수 있습니다. 따라서 나는 왜 프로그램이 SMS를 보낼 수 없는지 모르겠다.Java에서 gsm 모뎀에 명령을 보내십시오.
import java.io.*;
import java.util.*;
import gnu.io.*;
public class prawiefinal {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "AT+CMGF=1 \r";
static String messageString2 = "AT+CMGS=\"+4866467xxxx\"\r";
static String messageString3 = "TESting \u001A\r\n";
static SerialPort serialPort;
static OutputStream outputStream;
public static void main(String[] args) throws InterruptedException {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM3")) {
try {
serialPort = (SerialPort)
portId.open("COM3", 2000);
} catch (PortInUseException e) {System.out.println("err");}
try {
outputStream = serialPort.getOutputStream();
} catch (IOException e) {e.printStackTrace();}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {e.printStackTrace();}
try {
outputStream.write(messageString.getBytes());
Thread.sleep(3000);
outputStream.flush();
outputStream.write(messageString2.getBytes());
Thread.sleep(3000);
outputStream.flush();
outputStream.write(messageString3.getBytes());
Thread.sleep(3000);
outputStream.write(26);
outputStream.flush();
System.out.println(messageString);
Thread.sleep(3000);
outputStream.close();
serialPort.close();
} catch (IOException e) {e.printStackTrace());}
}
}
}
}
}
''e.printStackTrace()'당신'catch'에서 절을했습니다. 예외가 무엇인지 더 잘 설명 할 수 있습니다. 모든'catch' 절에서 그렇게하고, [edit] 질문하고 스택 추적을 추가하십시오. 올바른 포맷을하는 것을 잊지 마십시오 (백틱을 사용하지 않고'{}'버튼 사용). – RealSkeptic
** SerialPort **에 사용 된 jar 파일은 무엇입니까? –