J'essaye de faire un programme pour envoyer un sms. J'ai écrit le programme mais je n'ai pas réussi à envoyer le message. Mon programme envoie une commande At au port COM sur mon ordinateur mais je n'obtiens pas de réponse de mon modem gsm. J'utilise COM terminal (Temp pro ...) pour envoyer des sms avec la commande at et je suis capable d'envoyer des sms. Par conséquent, je ne sais pas pourquoi le programme ne peut pas envoyer un sms.Envoyer à commande à modem gsm avec Java
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());}
}
}
}
}
}
Au lieu d'utiliser 'println ("ERR3")' 'mettre e.printStackTrace()' 'dans votre article catch'. Cela peut expliquer mieux quelle est l'exception. Faites cela dans toutes les clauses 'catch', [edit] votre question et ajoutez-y la trace de la pile. N'oubliez pas de le formater correctement (sans utiliser les guillemets, mais en utilisant le bouton {{} '). – RealSkeptic
quel est le fichier jar que vous avez utilisé pour ** SerialPort ** –