⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sender.java

📁 sms program related to the j2me by which we can send sms
💻 JAVA
字号:
/* *  * @author : William Alexander **/import java.util.Date;public class Sender implements Runnable  {  private static final long STANDARD=500;  private static final long LONG=2000;  private static final long  VERYLONG=20000;  SerialConnection mySerial =null;  static final private char cntrlZ=(char)26;  String in, out;  Thread aThread=null;  private long delay=STANDARD;  String recipient=null;  String message=null;  private String csca="+6596845999"; // the message center  private SerialParameters defaultParameters= new SerialParameters ("COM2",9600,0,0,8,1,0);  public int step;  public int status=-1;  public long messageNo=-1;  public Sender(String recipient, String message){    this.recipient=recipient;    this.message=message;  }  /**   * connect to the port and start the dialogue thread   */  public int send () throws Exception{    SerialParameters params = defaultParameters;    mySerial =new SerialConnection (params);    mySerial.openConnection();    aThread=new Thread(this);    aThread.start() ;    //log("start");    return 0;  }  /**   * implement the dialogue thread,   * message / response via steps,   * handle time out   */  public void run(){    boolean timeOut=false;    long startTime=(new Date()).getTime();    while ((step <7) && (!timeOut)){//      log(""+((new Date()).getTime() - startTime);      //check where we are in specified delay      timeOut=((new Date()).getTime() - startTime)>delay;      //if atz does not work, type to send cntrlZ and retry, in case a message was stuck      if (timeOut && (step==1)) {          step=-1;          mySerial.send(        ""+cntrlZ);      }      //read incoming string      String result=  mySerial.getIncommingString() ;//    log ("<- "+result+"\n--------");      int expectedResult=-1;      try{        //log ("Step:"+step);        switch (step){          case 0:            mySerial.send("atz");            delay=LONG;            startTime=(new Date()).getTime();            break;          case 1:            delay=STANDARD;            mySerial.send("ath0");            startTime=(new Date()).getTime();            break;          case 2:            expectedResult=result.indexOf("OK");            //log ("received ok ="+expectedResult);            if (expectedResult>-1){              mySerial.send("at+cmgf=1");              startTime=(new Date()).getTime();            }else{                step=step-1;            }            break;          case 3:            expectedResult=result.indexOf("OK");           // log ("received ok ="+expectedResult);            if (expectedResult>-1){              mySerial.send("at+csca=\""+csca+"\"");              startTime=(new Date()).getTime();            }else{              step=step-1;            }            break;          case 4:            expectedResult=result.indexOf("OK");           // log ("received ok ="+expectedResult);            if (expectedResult>-1){              mySerial.send("at+cmgs=\""+recipient+"\"");              startTime=(new Date()).getTime();            }else{              step=step-1;            }            break;          case 5:            expectedResult=result.indexOf(">");           // log ("received ok ="+expectedResult);            if (expectedResult>-1){              mySerial.send(message+cntrlZ);              startTime=(new Date()).getTime();            }else{              step=step-1;            }            delay=VERYLONG;//waitning for message ack            break;          case 6:            expectedResult=result.indexOf("OK");            //read message number            if (expectedResult>-1){              int n=result.indexOf("CMGS:");              result=result.substring(n+5);              n=result.indexOf("\n");              status=0;              messageNo=Long.parseLong(result.substring(0,n).trim() );              log ("sent message no:"+messageNo);            }else{              step=step-1;            }          break;        }        step=step+1;        aThread.sleep(100);      }catch (Exception e){          e.printStackTrace();      }    }    mySerial.closeConnection() ;    //if timed out set status    if (timeOut ) {        status=-2;        log("*** time out at step "+step+"***");    }  }/** * logging function, includes date and class name */  private void log(String s){    System.out.println (new java.util.Date()+":"+this.getClass().getName()+":"+s);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -