亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

smslib發短信實例代碼(電腦發短信)

2019-11-26 15:50:37
字體:
來源:轉載
供稿:網友

SMSLib是一個由很多程序員共同開發的,用于支持GSM貓或者手機發送短信的開源項目,下面來個實例代碼

復制代碼 代碼如下:

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.smslib.ICallNotification;
import org.smslib.IInboundMessageNotification;
import org.smslib.IOutboundMessageNotification;
import org.smslib.InboundMessage;
import org.smslib.InboundMessage.MessageClasses;
import org.smslib.Library;
import org.smslib.Message.MessageEncodings;
import org.smslib.Message.MessageTypes;
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.modem.SerialModemGateway;

/**
 * @author terry
 *
 */
public class SmsModem {

 // 短信網關
 private SerialModemGateway gateway = null;
 java.util.ResourceBundle rb = null;//ResourceBundle.getBundle("SMS");
 static SmsModem smsModem = null;
 OutboundNotification outboundNotification = new OutboundNotification();
 private static final Logger LOG = Logger.getLogger(SmsModem.class);
 Service srv;
 InboundNotification inboundNotification = new InboundNotification();
 // Create the notification callback method for inbound voice calls.
 CallNotification callNotification = new CallNotification();

 public SmsModem() {
  try {
   //ReadMessages rm = new ReadMessages();
   //rm.doIt();

   rb = ResourceBundle.getBundle("sms");
   String portName= "COM10";
   int port = 9600;
   LOG.info("default portName:" + portName);
   LOG.info("default port:" + port);
   if(rb != null)
   {
    LOG.info("RB is not null");
    if(rb.getString("smsport") != null && !"".equals(rb.getString("smsport")))
    {
     portName = rb.getString("smsport");
     LOG.info("portName:" + portName);
    }
    if(rb.getString("smsbolv") != null && !"".equals(rb.getString("smsbolv")))
    {
     port = Integer.valueOf(rb.getString("smsbolv"));
     LOG.info("port:" + port);
    }
   }
   // 初始化短信網關
   gateway = new SerialModemGateway("modem." + portName, portName, port,
     "wavecom", "17254");

  } catch (Exception e) {
   LOG.error("網關初始化失敗:" + e.getMessage());
   e.printStackTrace();
  }
 }

 public static SmsModem getInstant() {
  if (smsModem == null) {
   smsModem = new SmsModem();
  }
  return smsModem;
 }

 public SerialModemGateway getGateway() {
  return gateway;
 }

 public void sendMessage(String phone, String content) throws Exception {
  doIt(phone, content);
 }

 /**
  * 發送短信
  * @param phone
  * @param content
  * @throws Exception
  */
 public void doIt(String phone, String content) throws Exception {

  OutboundMessage msg;

  LOG.info("Sent Example: Send message from a serial gsm modem.");
  LOG.info(Library.getLibraryDescription());
  LOG.info("Sent Version: " + Library.getLibraryVersion());
  if (srv == null) {
   srv = new Service();
   srv.S.SERIAL_POLLING = true;
   gateway.setInbound(true);
   gateway.setOutbound(true);
   gateway.setSimPin("0000");
   gateway.setOutboundNotification(outboundNotification);
   gateway.setInboundNotification(inboundNotification);
   gateway.setCallNotification(callNotification);
   srv.addGateway(gateway);
   srv.startService();
  }

  if (gateway != null) {
   LOG.info("Sent Modem Information:");
   LOG.info("Sent  Manufacturer: " + gateway.getManufacturer());
   LOG.info("Sent  Model: " + gateway.getModel());
   LOG.info("Sent  Serial No: " + gateway.getSerialNo());
   LOG.info("Sent  SIM IMSI: " + gateway.getImsi());
   LOG.info("Sent  Signal Level: " + gateway.getSignalLevel() + "%");
   LOG.info("Sent  Battery Level: " + gateway.getBatteryLevel() + "%");
  }
  // Send a message synchronously.

  msg = new OutboundMessage(phone, content);
  msg.setEncoding(MessageEncodings.ENCUCS2);// 這句話是發中文短信必須的
  srv.sendMessage(msg);
 }

 /**
  * 發送消息類
  * @author terry
  *
  */
 public class OutboundNotification implements IOutboundMessageNotification {
  public void process(String gatewayId, OutboundMessage msg) {
   LOG.info("Sent Outbound handler called from Gateway: " + gatewayId);
   LOG.info(msg);
  }
 }
 //接收消息類
 public String readMessage()
 {
  StringBuffer sb = new StringBuffer("");
  List<InboundMessage> msgList;
  // Create the notification callback method for Inbound & Status Report
  // messages.

  try
  {
   System.out.println("Read Example: Read messages from a serial gsm modem.");
   System.out.println(Library.getLibraryDescription());
   System.out.println("Read Version: " + Library.getLibraryVersion());
   // Create new Service object - the parent of all and the main interface
   // to you.
   if (srv == null) {
    srv = new Service();
    srv.S.SERIAL_POLLING = true;
    gateway.setInbound(true);
    gateway.setOutbound(true);
    gateway.setSimPin("0000");
    gateway.setOutboundNotification(outboundNotification);
    gateway.setInboundNotification(inboundNotification);
    gateway.setCallNotification(callNotification);
    srv.addGateway(gateway);
    srv.startService();
   }

   
   // Similarly, you may define as many Gateway objects, representing
   // various GSM modems, add them in the Service object and control all of them.
   //
   // Start! (i.e. connect to all defined Gateways)

   LOG.info("Read Modem Information:");
   LOG.info("Read   Manufacturer: " + gateway.getManufacturer());
   LOG.info("Read   Model: " + gateway.getModel());
   LOG.info("Read   Serial No: " + gateway.getSerialNo());
   LOG.info("Read   SIM IMSI: " + gateway.getImsi());
   LOG.info("Read   Signal Level: " + gateway.getSignalLevel() + "%");
   LOG.info("Read   Battery Level: " + gateway.getBatteryLevel() + "%");
   // Read Messages. The reading is done via the Service object and
   // affects all Gateway objects defined. This can also be more directed to a specific
   // Gateway - look the JavaDocs for information on the Service method calls.
   msgList = new ArrayList<InboundMessage>();
   this.srv.readMessages(msgList, MessageClasses.ALL);
   int num = 1;
   for (InboundMessage msg : msgList)
   {
    sb.append("第" + num + "條;發件人:"+msg.getOriginator() + ";內容:" + msg.getText() + "/n");
    //sb.append(msg.toString() + "/n");
    LOG.info("第" + num + "條;發件人:"+msg.getOriginator() + ";內容:" + msg.getText() + "/n");
    num++;
    LOG.info(msg);
   }
   // Sleep now. Emulate real world situation and give a chance to the notifications
   // methods to be called in the event of message or voice call reception.
   //System.out.println("Now Sleeping - Hit <enter> to terminate.");
   //System.in.read();
  }
  catch (Exception e)
  {
   sb.append(e.getMessage());
   e.printStackTrace();
  }
  finally
  {
   //this.srv.stopService();
  }
  return sb.toString();
 }

 public class InboundNotification implements IInboundMessageNotification
 {
  public void process(String gatewayId, MessageTypes msgType, InboundMessage msg)
  {
   if (msgType == MessageTypes.INBOUND) System.out.println(">>> New Inbound message detected from Gateway: " + gatewayId);
   else if (msgType == MessageTypes.STATUSREPORT) System.out.println(">>> New Inbound Status Report message detected from Gateway: " + gatewayId);
   System.out.println(msg);
   try
   {
    // Uncomment following line if you wish to delete the message upon arrival.
    // srv.deleteMessage(msg);
   }
   catch (Exception e)
   {
    System.out.println("Oops!!! Something gone bad...");
    e.printStackTrace();
   }
  }
 }

 public class CallNotification implements ICallNotification
 {
  public void process(String gatewayId, String callerId)
  {
   System.out.println(">>> New call detected from Gateway: " + gatewayId + " : " + callerId);
  }
 }

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人天天操| 精品亚洲一区二区三区在线播放| 欧美精品电影免费在线观看| 国产亚洲一区二区精品| 国产精品精品久久久久久| 欧美富婆性猛交| 欧美日韩国产一区二区三区| 日韩女优人人人人射在线视频| 国产精品羞羞答答| 26uuu国产精品视频| 欧美成人午夜免费视在线看片| 狠狠躁18三区二区一区| 久久久久久久久久久91| 91久久精品国产91久久| 欧美精品一区三区| 97视频免费观看| 日本中文字幕成人| 国产在线观看精品| 亚洲欧洲第一视频| 97香蕉超级碰碰久久免费软件| 丝袜亚洲欧美日韩综合| yellow中文字幕久久| 精品国产乱码久久久久酒店| 亚洲第一天堂av| 久久在精品线影院精品国产| 欧美日韩亚洲一区二区| 国产日韩欧美在线视频观看| 国模吧一区二区| 欧美在线中文字幕| 日韩经典中文字幕在线观看| 国产精品自产拍在线观看| 98精品国产自产在线观看| 国产精品aaaa| 亚洲精品视频久久| 久久久精品视频在线观看| 欧美日本啪啪无遮挡网站| 中文字幕av日韩| 久久精品国产成人精品| 欧美日韩成人精品| 亚洲成色999久久网站| 国产精品久久久久久久久久尿| 国产丝袜一区二区三区| 国产精品久久久av久久久| 狠狠综合久久av一区二区小说| 国产精品久久久久久久一区探花| 中文欧美日本在线资源| 国内精品伊人久久| 久久视频免费观看| 国产欧美va欧美va香蕉在| 欧美xxxx做受欧美| 亚洲精品v欧美精品v日韩精品| 国产精品爽爽爽爽爽爽在线观看| 97福利一区二区| 欧美性猛xxx| 在线视频亚洲欧美| 中国china体内裑精亚洲片| 日本精品久久久| www.欧美免费| 久久久久久久成人| 国产区精品在线观看| 黑人欧美xxxx| 成人黄色影片在线| 精品久久久久久亚洲国产300| 欧美制服第一页| 亚洲一区999| 欧美特级www| 亚洲www在线观看| 欧美黄色三级网站| 欧美中文字幕在线观看| 国产亚洲欧美日韩精品| 日韩av免费网站| 精品久久久久久久久久久久久久| 福利视频导航一区| 亚洲白虎美女被爆操| 国产精品电影在线观看| 91精品视频在线免费观看| 国产v综合ⅴ日韩v欧美大片| 日韩高清电影免费观看完整| 中文字幕亚洲一区| 国产精品欧美在线| 久久精品91久久香蕉加勒比| 亚洲精品在线不卡| 爱福利视频一区| 国产精品久久久久久久久久新婚| 日韩av在线免费观看| 色妞在线综合亚洲欧美| 亚洲免费人成在线视频观看| 粗暴蹂躏中文一区二区三区| 成人激情黄色网| 国产日韩欧美中文在线播放| 日本乱人伦a精品| 日韩av综合中文字幕| 国产午夜一区二区| 黑人极品videos精品欧美裸| 亚州国产精品久久久| 亚洲黄色www网站| 日韩在线视频网| 亚洲美女性视频| 亚洲精品自在久久| 在线不卡国产精品| 亚洲天堂av在线播放| 欧美一区二区三区精品电影| 日韩欧美国产黄色| 欧洲日本亚洲国产区| 日韩天堂在线视频| 国产小视频国产精品| 亚洲精品视频在线播放| 夜夜嗨av色一区二区不卡| 日韩av大片在线| 国产亚洲欧洲高清| 黑人巨大精品欧美一区二区| 播播国产欧美激情| 欧美午夜视频在线观看| 欧美久久精品一级黑人c片| 欧美特级www| 欧美巨猛xxxx猛交黑人97人| 日韩av在线免费观看| 国产精品美女视频网站| 精品国产成人在线| 欧美猛交ⅹxxx乱大交视频| 91精品视频在线播放| 国产在线久久久| 这里只有视频精品| 在线丨暗呦小u女国产精品| 亚洲欧美激情精品一区二区| 日韩av在线免费播放| 欧美激情第99页| 久久久久久久999精品视频| 欧美日韩在线免费| 欧美午夜无遮挡| 亚洲qvod图片区电影| 日韩精品有码在线观看| 国产精品视频成人| 亚洲国产精品va| www.欧美精品| 日本精品久久久久久久| 97精品国产aⅴ7777| 在线日韩日本国产亚洲| 国产精品美乳一区二区免费| 欧美中文字幕在线| 午夜精品久久久99热福利| 精品久久久久久久久久ntr影视| 亚洲精品国产精品国自产在线| 中文字幕亚洲无线码在线一区| 国产精品亚洲自拍| 国产不卡精品视男人的天堂| 亚洲午夜未满十八勿入免费观看全集| 日韩av片永久免费网站| 亚洲免费伊人电影在线观看av| 久久久视频精品| 国产性色av一区二区| 在线一区二区日韩| 成人久久一区二区| 欧美性20hd另类| 欧美综合激情网| 国产精品夫妻激情| 久久久久北条麻妃免费看| 亚洲成色www8888| 国产精品专区h在线观看| 亚洲精品自拍视频| 97精品国产97久久久久久| 国产精品日韩久久久久| 亚洲视频自拍偷拍| 国产精品久久99久久|