Note that there are some explanatory texts on larger screens.

plurals
  1. POJava SMS gateway can connect with the comm port but doesn't send message
    primarykey
    data
    text
    <p>This is a program which supposed to send sms to any number but failed. It can connect with the port but doesn't send any message. Anyone helping hand, please?</p> <pre><code>package mateorssms; import java.io.*; import java.util.*; import javax.comm.*; public class GSMConnect implements SerialPortEventListener, CommPortOwnershipListener { private String comPort = "COM3"; // This COM Port must be connect with GSM Modem or your mobile phone private String messageString = "hi there!"; private CommPortIdentifier portId = null; private Enumeration portList; private InputStream inputStream = null; private OutputStream outputStream = null; private SerialPort serialPort; /** Creates a new instance of GSMConnect */ public GSMConnect(String comm) { //this.comPort = comm; } public boolean init() { portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals(comPort)) { return true; } } } return false; } public void checkStatus() { send("AT+CREG?\r\n"); //reurn outt; } public void dial(String phoneNumber) { try { //dial to this phone number messageString = "ATD" + phoneNumber + ";\n\r"; outputStream.write(messageString.getBytes()); } catch (IOException e) { e.printStackTrace(); } } public void send(String cmd) { try { outputStream.write(cmd.getBytes()); inputStream = serialPort.getInputStream(); System.out.println(" Input Stream... " + inputStream.toString()); } catch (IOException e){ e.printStackTrace(); } } public void sendMessage(String phoneNumber, String message) { //send("AT+CMGS=\"" + phoneNumber + "\"\r\n"); send("AT+CMGS=\""+phoneNumber+"\"\r\n"); send(message + '\032'); } public void hangup() { send("ATH\r\n"); } public void connect() throws NullPointerException { if (portId != null) { try { portId.addPortOwnershipListener(this); serialPort = (SerialPort) portId.open("MobileGateWay", 2000); } catch (PortInUseException e) { e.printStackTrace(); } try { inputStream = serialPort.getInputStream(); outputStream = serialPort.getOutputStream(); } catch (IOException e) { e.printStackTrace(); } try { /** These are the events we want to know about*/ serialPort.addEventListener(this); serialPort.notifyOnDataAvailable(true); } catch (TooManyListenersException e) { e.printStackTrace(); } //Register to home network of sim card send("ATZ\r\n"); } else { throw new NullPointerException("COM Port not found!!"); } } @Override public void serialEvent(javax.comm.SerialPortEvent serialPortEvent) { switch (serialPortEvent.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: case SerialPortEvent.DATA_AVAILABLE: byte[] readBuffer = new byte[2048]; try { while (inputStream.available()&gt;0) { int numBytes = inputStream.read(readBuffer); } //print response message System.out.print(new String(readBuffer)); } catch (IOException e) { } break; } } @Override public void ownershipChange(int type) { switch (type) { case CommPortOwnershipListener.PORT_UNOWNED: System.out.println(portId.getName() + ": PORT_UNOWNED"); break; case CommPortOwnershipListener.PORT_OWNED: System.out.println(portId.getName() + ": PORT_OWNED"); break; case CommPortOwnershipListener.PORT_OWNERSHIP_REQUESTED: System.out.println(portId.getName() + ": PORT_INUSED"); break; } } public static void main(String args[]) { GSMConnect gsm = new GSMConnect("COM3"); if (gsm.init()){ try { gsm.connect(); gsm.checkStatus(); Thread.sleep(3000); gsm.sendMessage("01911507103", "Your Message"); Thread.sleep(3000); gsm.hangup(); } catch (Exception e) { e.printStackTrace(); } } else { System.out.println("Can't init this card"); } } } </code></pre> <p>And here is the output when I run in Netbeans 7.1.</p> <pre><code>run: COM3: PORT_OWNED Input Stream... com.sun.comm.Win32SerialInputStream@a32b Input Stream... com.sun.comm.Win32SerialInputStream@a32b ATZ OK Input Stream... com.sun.comm.Win32SerialInputStream@a32b AT+CMGS="01911507103" Input Stream... com.sun.comm.Win32SerialInputStream@a32b ERROR Input Stream... com.sun.comm.Win32SerialInputStream@a32b ATH OK </code></pre> <p>Thanks in advance...</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload