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

📄 receivestatusreport.java~1~

📁 控制手机发送短信程序
💻 JAVA~1~
字号:
import java.io.File;import java.io.IOException;import java.util.Hashtable;import com.objectxp.msg.GsmSmsService;import com.objectxp.msg.Message;import com.objectxp.msg.MessageEvent;import com.objectxp.msg.MessageEventListener;import com.objectxp.msg.MessageException;import com.objectxp.msg.SmsMessage;import com.objectxp.msg.SmsService;import com.objectxp.msg.SmsStatus;import com.objectxp.msg.StatusReportMessage;/** * This example demonstrates how to handle Status Reports. * */public class ReceiveStatusReport implements MessageEventListener {  /* Incoming status reports */  private Hashtable reports = new Hashtable();      public static void main(String args[]) throws IOException, MessageException, InterruptedException  {    if(args.length != 3 ) {      System.err.println("Usage: ReceiveStatusReport <config-file> <recipient> <text>");      System.exit(1);    }        SmsService service = null;    try {      // initialize SmsService (replace GsmSmsService with your licensed Service)      service = new GsmSmsService();      service.init(new File(args[0]));        // register a MessageEvent listener      ReceiveStatusReport rsr = new ReceiveStatusReport();      service.addMessageEventListener(rsr);            // prepare a sms message       SmsMessage msg = new SmsMessage();      msg.setRecipient(args[1]);      msg.setMessage(args[2]);      msg.requestStatusReport(true);      // Connect to the SMSC/GSM device      service.connect();            // receiving must be started for status report reception       service.startReceiving();            // Send the message      service.sendMessage(msg);            // Wait for the status report      StatusReportMessage status = rsr.waitForStatusReport(msg, 60000);        if( status == null) {        System.out.println("WARNING: No status report received within one minute...");      }       else {        SmsStatus smsstat = status.getStatus();        System.out.println("Received StatusReportMessage: "+smsstat);      }    } finally {            service.destroy();    }     }  /**   * Wait for the arrival of our StatusReportMessage.   *    * @param msg the originating message   * @param timeout the time to wait for an incoming status report for the message   * @return a StatusReportMessage or null   */  private StatusReportMessage waitForStatusReport(Message msg, long timeout) throws InterruptedException  {    if(msg == null ) return null;        Object id = msg.getID();        if( id == null ) {      throw new IllegalArgumentException("Message has no ID");    }        synchronized(reports) {      Object obj = reports.get(id);      if( obj != null && obj instanceof StatusReportMessage ) {        reports.remove(id);        return (StatusReportMessage) obj;      }            // Wait for the status report      Object sync = new Object();      reports.put(id, sync);      synchronized(sync) {        sync.wait(timeout);       }            obj = reports.get(id);      if( obj != null && obj instanceof StatusReportMessage ) {        reports.remove(id);        return (StatusReportMessage) obj;      }    }    return null;  }  /**   * Handle MessageEvents from the SmsService.    */  public void handleMessageEvent(MessageEvent event)   {    if(event.getType() == MessageEvent.STATUS_RECEIVED) {      StatusReportMessage msg = (StatusReportMessage)event.getMessage();       System.out.println("Received StatusReportMessage with id: "+msg.getID());      Object id = msg.getID();      if( id == null ) {        System.err.println("Incoming Status Report has no ID");        return;      }            synchronized(reports) {        Object obj = reports.get(id);        if( obj == null ) {          reports.put(obj, msg);        } else {          synchronized(obj) {            obj.notify();          }          }      }          }  }}

⌨️ 快捷键说明

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