Java를 사용하여 AT 명령을 사용하여 3G 동글 (GSM 모뎀)에서 SMS를 보내고 있습니다. 대부분 작동하지만, 때때로 SMS 텍스트는 그 전에 실행 된 AT 명령의 일부를 포함합니다. 이것은 간헐적이지만 수정해야합니다. 다음AT Java에서 메시지를 보내려는 명령
관련 코드 :
public void sendMessage(String phoneNumber, String message) throws InterruptedException {
char qu=34;
char cz=26;
send("AT+CMGF=1\r\n");
Thread.sleep(2000);
send("AT+CMGS=" + qu + phoneNumber + qu + ",145\r\n");
send(message + cz + "\r");
}
public static void main(String args[]) {
GSMConnect gsm = new GSMConnect("COM22");
if (gsm.init()) {
try {
gsm.connect();
Thread.sleep(2000);
gsm.sendMessage("+9172xxxxxxxx", "Test Message sent from GSM Modem using AT Commands.");
System.out.println("Sleeping for 20 secs");
Thread.sleep(20000);
gsm.hangup();
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.out.println("Can't init this card");
}
}
다음 I 때때로 수신 메시지는 다음
+ CMGS = "+ 9172xxxxxxxx"AT, GSM 모뎀으로부터 전송 145 테스트 메시지를 사용하여 AT 명령.
============ 당신의 도움에 미리
덕분에! 종이의 큰 A3 용지를 취득하여
감사합니다, Kumarjit
멀티 스레딩 문제가있는 것 같습니다. 실수로 한 번에 두 개의 프로그램 인스턴스를 실행합니까? –
맞습니다. 나는 2 명의 사람에게 같은 메시지를 보내야했다. 그래서 gsm.sendMessage를 두 번 호출했습니다. 그러나이 번호를 하나의 번호로 보냈을 때도이 문제가 발생했습니다. AT + CREG = 같은 다른 명령도 실행되었습니다. 및 ATZ – kaayess
한 번에 하나의 프로그램에서만 COM22에 액세스 할 수있는 메커니즘이 필요합니다. –