天天看點

短信貓二次開發(java版)短信貓二次開發(java版)

短信貓二次開發(java版)

示例代碼github

短信貓

  • 短信貓用于批量收/發短信或其它SIM卡服務。
  • 短信貓與PC通過GSM無線網絡互動。
  • 互動過程可以分為三個層次:

    1.實體層,即無線網絡通信。

    2.指令層,短信貓支援M35AT指令。

    3.應用層,APP需要與短信貓互動的内容。

在做二次開發過程中,真正需要關心的隻是應用層的内容。為了避免重複開始,關于實體層和指令層,可以直接使用現有的開源項目。而二次開發的代碼隻需要調用指令層的API即可。

環境

  • windows10 64bit
  • jdk1.8

準備

實體層開源項目Rxtx

  • 官網讓我們去這裡下載下傳64位的:http://fizzed.com/oss/rxtx-for-java
  • 短信貓二次開發(java版)短信貓二次開發(java版)
  • 在這裡選擇相應的版本下載下傳即可
  • 短信貓二次開發(java版)短信貓二次開發(java版)
  • 短信貓二次開發(java版)短信貓二次開發(java版)
  • 将下載下傳下來的rxtxSerial.dll複制到JAVA_HOME\bin目錄下
  • 将下載下傳下來的RXTXcomm.jar導入項目

指令層開源項目Smslib

  • 短信貓二次開發(java版)短信貓二次開發(java版)
  • 将下載下傳下來的smslib-3.5.0.jar導入項目即可
  • 同時由于項目依賴了log4j,需要下載下傳或加入依賴,以下提供gradle的依賴(自己去網上找jar包然後導入項目也是可以的)
compile('log4j:log4j:1.2.17')
           
  • 以下是從網絡找的一段測試代碼,親測通過,實際肯定還要進行封裝下,見 示例代碼github
public class T {
    public static boolean sendSMS(String phone, String content) throws Exception {
        //擷取短信配置的資訊
        // ---------------建立序列槽裝置,如果有多個,就建立多個--------------  
        // 1、連接配接網關的id(随意指定,不沖突即可) 
        // 2、com口名稱,如COM1或/dev/ttyS1(根據實際情況修改)  
        // 3、序列槽波特率,如9600(根據實際情況修改,一般為115200)  
        // 4、開發商,一般為huawei和wavecom,可通過工具檢測出來
        // 5、型号,可選,不清楚直接為空就好了 
        SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM1", 115200, "wavecom", "");

        gateway.setInbound(true); // 設定true,表示該網關可以接收短信
        gateway.setOutbound(true); // 設定true,表示該網關可以發送短信
        // -----------------建立發送短信的服務(它是單例的)----------------
        Service service = Service.getInstance();
        Service.getInstance().S.SERIAL_POLLING = true;
        try {
        // ---------------------- 将裝置加到服務中----------------------
            service.addGateway(gateway);
        // ------------------------- 啟動服務 -------------------------
            service.startService();
        // ------------------------- 發送短信 -------------------------  
            OutboundMessage msg = new OutboundMessage(phone, content);
            msg.setEncoding(Message.MessageEncodings.ENCUCS2);
            service.sendMessage(msg);
        // ------------------------- 關閉服務 -------------------------  
            service.stopService();
            service.removeGateway(gateway);
        } catch (Exception e) {
            e.printStackTrace();
            service.stopService();
            service.removeGateway(gateway);
            return false;
        }
        return true;
    }


    public static void main(String[] args) {
        try {
            sendSMS("15622770000", "dgshdgl第幾個\nddd");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
           

資源

  • 短信貓測試工具

參考

  • windows短信貓二次開發
  • 北京金蝶短信貓裝置官網
  • java短信貓接口程式配置開發包