SMSLIB+RXTX 簡訊貓開發模組
幾天的工作成果,winxp上早早就測好了,在linux 上花了不少時間。
一開始使用redhat4 64位系統,一直調不出來。後來換了centos_6_x86_64後,順利好多。
另外由於java comm v3對linux64位機器上不好用,花了不少時間。後改為rxtx,就好了。
切記,不要把java comm 的包扔到JAVA_HOME的目錄下,
因為smslib 是先查詢java comm 的包,如果不存在再去找rxtx的包,具體可以去看smslib原始碼
java comm包會影響專案的成功執行
已上傳所有的jar包和文件 以及呼叫程式碼.
簡訊貓開發模組使用了rxtx和 smslib 這兩種開原始碼
Rxtx是用於comm埠呼叫
Smslib是在rxtx的基礎上,呼叫簡訊貓,使用AT指令來進行簡訊的傳送接收等操作。
注意:
每次系統重啟或者插拔簡訊貓後,都要設定擁有者
chown dgsun /dev/ttyUSB0 (root 許可權執行,dgsun是使用者)
設定完後,使用minicom看看該使用者是否有許可權使用該埠
另外第一次使用時候要將dgsun使用者加入到 uucp組和lock組
vi /etc/group
1,配置RXTX
配置主要配置兩個檔案
一個是 Windows的dll檔案 linux下的.so
另一個是RXTXcomm.jar
1.1 windows
rxtx-2.2pre2-bins\win32目錄下的 rxtxSerial.dll
將rxtxSerial.dll複製到 JAVA_HOME\bin目錄下
將RXTXcomm.jar複製到 JAVA_HOME\jre\lib\ext目錄下
如果使用myeclipse開發則需要修改myeclipse使用的jdk。
Myeclipse自帶一個jdk,要改為JAVA_HOME下的jdk
1.2 linux
由於使用的是centos64位系統,所以
複製rxtx-2.2pre2-bins\x86_64-unknown-linux-gnu目錄下的librxtxSerial.so
將librxtxSerial.so複製到 JAVA_HOME/jre/lib/amd64中
將RXTXcomm.jar複製到 JAVA_HOME/jre/lib/ext目錄下
JAVA_HOME/jre/lib/amd64
這個目錄有可能各不相同
http://blog.csdn.net/iamfafa/article/details/6340057
如果找不到librxtxSerial.so則會報錯
java.lang.UnsatisfiedLinkError: no XXX injava.library.path
這個時候可以寫一段程式碼來檢視java.library.path的位置
System.out.println(System.getProperty("java.library.path"));
在打印出的位置中加入librxtxSerial.so即可
2 配置SMSLIB
將smslib目錄下的jar包加入到專案中
3 傳送簡訊
接下來就是在程式碼中使用smslib呼叫簡訊貓傳送簡訊
程式碼可見src目錄下 SmsMain.java 和 sms.properties
sms.properties配置了簡訊貓的引數。 在windows下和在linux下是不同的,
我測試的時候windows下使用的是com5埠,這個可以再裝置管理器中檢視到;
在linux下使用的是/dev/ttyUSB0,這個我是使用minicom一個一個在/dev/下找的
很奇怪,我使用的是wavecom模組的簡訊貓,在插入移動卡的時候,manufacutrer設定了wavecom ,傳送簡訊一切正常。當我換了一張聯通的gsm卡的時候,就無法發簡訊了,只有不填,呼叫預設驅動才可以發簡訊。所以該處都預設為不填。
需要發簡訊的時候只要呼叫 SmsMain的sendSms方法
static boolean sendSms(String mobile,String content)
4 附錄
Minicom使用
首先 minicom –s 對minicom 進行配置,相關配置可以再網上查詢介紹
主要是修改 Serialport setup, 修改完後save setupas dfl進行儲存。
Exit 後,如果配置簡訊貓正確的話,就可以進入到指令行了
輸入AT,回車,頁面列印OK
如果ATD133*******;就可以對該電話號碼進行撥號。 注意結尾的分號不可少。