短信貓二次開發(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短信貓接口程式配置開發包