<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    應用,一定要應用

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      25 Posts :: 0 Stories :: 118 Comments :: 0 Trackbacks

    #

    自己寫的一個小的發短信的程序一文中,我提到了一個我遇到的問題:
    用手機(作為gsm模塊)的話會因為手機截獲了接收信息而不能達到聊天的效果,大家如果有什么好的方法可以在這里告訴我,或者給我email,郵箱地址是flyffa@gmail.com
    這兩天我有空來繼續深入做的時候發現我自己犯了一個錯誤。用手機不能達到聊天效果的原因,不是因為手機截獲了消息,而是因為消息的存儲位置的變化,也就是說在簡單的gsm模塊中(如tc35i)消息是存儲在sim卡中的,而在手機中,卻是存在于ME中的,這個是由AT+CNMI決定的。
    AT+CNMI指令語法為 :
    AT+CNMI=[<mode>[,<mt>[,<bm>[,<ds>[,<bfr>]]]]]
    其中mode指的是新短信到來時的通知方式。
    而mt就指的是新短信到來時的存儲方式。
  • 0 – 儲存到默認的內存位置(包括class 3)
  • 1 – 儲存到默認的內存位置,并且向TE發出通知(包括class 3)
  • 2 – 對于class 2,儲存到SIM卡,并且向TE發出通知;對于其它class,直接將消息轉發到 TE
  • 3 – 對于class 3,直接將消息轉發到 TE;對于其它class,同mt=1
  • 這個默認存儲位置就是由手機決定的了,在gsm0705規范的3。4。1節中,我們可以查到一段關于mt的描述,在具體的mt值的描述在gsm0338中,但這里有一句話需要注意:but use <mem3> as preferred memory,也就是說,gsm更加建議采用<mem3>做為默認的手機存儲實現。

    現在的問題就是<mem3>是什么,在gsm0705的3.1節中,我們可以找到mem3的定義:
    <mem3> string type; memory to which received SMS are preferred to be stored (unless forwarded directly to TE; refer command New Message Indications +CNMI); refer <mem1> for defined values; received CBMs are
    always stored in "BM" (or some manufacturer specific storage) unless directly forwarded to TE; received status reports are always stored in "SR" (or some manufacturer specific storage) unless directlyforwarded to TE
    中間有一段話說值請參考mem1的值,查了一下mem1的值,有以下這些:
    "BM" broadcast message storage
    "ME" ME message storage
    "MT" any of the storages associated with ME
    "SM" SIM message storage
    "TA" TA message storage
    "SR" status report storage

    我再查了一下gsm0705的4.1節,關于pdu模式下的cmgl命令的執行,果然提到了存儲的部分,Execution command returns messages with status value <stat> from preferred message storage <mem1> to the TE.
    這就開始有點明白了,gsm模塊的<mem3>和<mem1>應該是一致的,所以,我們沒有發現問題,但是手機下這兩是不一致的,所以我讀不到任何短信,我想應該是這樣了,問題是如何讀到呢。
    AT+CPMS提供了方法:
    命令:+CPMS=<mem1>[,<mem2>[,<mem3>]]
    返回:+CPMS: <used1>,<total1>,<used2>,<total2>,<used3>,<total3>

    命令:+CPMS?
    返回:+CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total2>,<mem3>,<used3>,<total3>

    命令:+CPMS=?
    返回:+CPMS: (list of supported <mem1>s),(list of supported <mem2>s),(list of supported <mem3>s)

    我用Erricsion的t39做了個測試,超級終端下做的:
    at+cpms=?
    +CPMS: ("ME","SM"),("ME","SM"),("ME")

    OK
    at+cpms?
    +CPMS: "SM",0,25,"SM",0,25,"ME",0,40

    OK
    可以看到這里的<mem1>是SM,而<mem3>是ME,這就是問題所在了,由于這部手機的<mem3>不支持SM,所以把<mem1>設為ME,我的程序就可以運行了。
    以上是我解決這個問題的方法,不知道還有沒有更好更方便的方法,如果有,希望能回復在blog下,我不甚感激。也歡迎同道中人關注和討論。

    用tc35i做了個測試:
    at+cpms?
    +CPMS: "ME",0,25,"ME",0,25,"SM",0,25

    OK
    at+cpms=?
    +CPMS: ("MT","SM","ME"),("MT","SM","ME"),("MT","SM")

    OK
    這就讓我有點郁悶了,這里的<mem3>和<mem1>不同,可并沒有象我想象的那樣,接收的短信被放到SIM卡中,而是被放到了ME中,是不是tc35i沒有按照規范執行呢,請教各位。


    posted @ 2006-06-07 12:02 flyffa 閱讀(1810) | 評論 (4)編輯 收藏

    20060526
    發出1.1版本,這個版本主要是在圖形化界面上做了一些修改,為了提高一定的操作便捷性。
    下載地址:http://www.tkk7.com/Files/flyffa/javaSms1.1.rar
    1、將窗口改成了一般的聊天窗口形態,同時支持alt+s的快捷方式。
    2、窗口大小可拖拽
    3、增加發送聲音和接收聲音,以及在短信來的時候激活窗口
    4、將號碼欄設置為下拉框形態,并提供地址自動保存功能,生成文件Address

    如果需要了解其他更多,訪問:
    http://www.tkk7.com/flyffa/archive/2006/05/15/46177.html
    posted @ 2006-05-26 11:51 flyffa 閱讀(920) | 評論 (0)編輯 收藏

         摘要: 1.1. 基本知識 短信開發指通過串口 at 命令驅動短信貓進行短信發送和接收操作。 在 java 中 主要使用 javax.comm 包進...  閱讀全文
    posted @ 2006-05-15 11:22 flyffa 閱讀(8839) | 評論 (21)編輯 收藏

    前段時間公司的工作涉及到了短信部分,寫了一些程序,寫來寫去,覺得在電腦上發短信還是很方便的,就自己給自己寫了一個,通過串口驅動gsm設備的短信程序。
    說是串口,其實紅外口,藍牙口,還是usb轉換的com口,其實本質都是一樣的,只要能在電腦里找到com口就行了。
    大家有興趣的可以下載下去看看。下載地址列在這篇文檔的下面。

    大多操作都很簡單,把手機連上,(紅外,藍牙,數據線都可以)然后啟動程序,當然,這是java寫的程序,你的保證你的path里有$JAVA_HOME/bin的路徑,或者你自己改我的bat文件也行。

    主要要注意的問題是波特率的選擇,因為各個手機的各種連接方式的波特率都是不同的,選擇的波特率不正確容易導致數據傳輸問題,甚至可能會失敗。我現在不能自動獲取端口的波特率,大家如果有什么好的方法可以在這里告訴我,或者給我email,郵箱地址是flyffa@gmail.com。

    當然,你的手機要能支持標準的at命令了,程序是通過at命令完成的,比如發送的時候是at+cmgs,接收的時候用的是at+cmgl。

    有一個地方需要注意,我為了避免sim卡中的信息上溢,隔段時間就會把sim中的信息刪除一次,呵呵,大家卡里有什么重要的內容最好提前保存起來。(1。2版本之后就不再自動刪除了)

    程序寫的還很不完善,后續慢慢支持吧。

    unix/linux主機沒有測過,不過都是標準java,改起來應該也不難,后面有時間再繼續支持吧。

    歡迎各路高手交流。

    使用說明:
    1、jdk1.4以上支持,請正確配置path,或者自行修改javaSms.bat中的命令。
    2、gsm模塊一臺,可以是專門的gsm模塊,也可以是一些支持at命令的手機。
    3、程序在simens的tc35i模塊上開發。用simens的s75,nokia的3230手機紅外測試通過。
    4、西門子的SX1不能支持,由于其com口(紅外,數據線,藍牙)被內置的fax模塊接管,不能直接連到gsm模塊上,說白了就是不支持at命令,特別說明的原因是我的機器就是SX1,苦啊。
    5、手機或者gsm設備正確連接上電腦之后,設備管理里面應該出現一個新的com口(數據線方式連接),或者出現新的紅外設備(紅外方式連接),或者藍牙設備(藍牙方式連接),找到后通過屬性可以查看其最高波特率,這個能有效幫助你選擇javaSms的連接波特率。


    20060405
    發出第一版:
    下載地址:http://www.tkk7.com/Files/flyffa/javaSms.rar
    底層包實現了短信發送,超長短信發送,wap-push發送,超長wap-push發送
    圖形界面實現短信發送,超長短信發送。
    圖形界面支持com口選擇,波特率選擇。

    未支持:
    wap-push接收,超長短信接收。
    除了發送接收之外的其余四種短信格式,均未支持。

    20060526
    發出1.1版本,這個版本主要是在圖形化界面上做了一些修改,為了提高一定的操作便捷性。
    下載地址:http://www.tkk7.com/Files/flyffa/javaSms1.1.rar
    1、將窗口改成了一般的聊天窗口形態,同時支持alt+s的快捷方式。
    2、窗口大小可拖拽
    3、增加發送聲音和接收聲音,以及在短信來的時候激活窗口
    4、將號碼欄設置為下拉框形態,并提供地址自動保存功能,生成文件Address

    20060607
    1.2版本,下載地址
    http://www.tkk7.com/Files/flyffa/javaSms1.2.rar
    1、對聯通手機號碼進行支持,主要的處理就是在短信中心的控制上
    2、對容錯能力進行提高,對于發送失敗的信息,加以提示.
    3、解決以手機做為gsm模塊時不能正常接收短信的問題,從而達到聊天的效果。
    4、停止自動刪除短消息的功能。

    posted @ 2006-05-15 11:10 flyffa 閱讀(7650) | 評論 (65)編輯 收藏

    向dudu申請了這個站點有些日子了,一直被些瑣事纏身,一篇都沒有貼,實在是汗顏,今天先開個張吧,回頭有空再把該發的都發上來。
    做Java也有些年頭了,中間也涉及到了各種各樣其他的技術,寫到這里,算是做個整理和記載吧。
    過兩天把手頭的項目忙完,再做個細致的分類吧。
    歡迎各路高手交流。

    posted @ 2006-05-12 11:43 flyffa 閱讀(162) | 評論 (0)編輯 收藏

    僅列出標題
    共3頁: 上一頁 1 2 3 
    主站蜘蛛池模板: 日韩亚洲不卡在线视频中文字幕在线观看| 亚洲AV无码欧洲AV无码网站| 无码人妻久久一区二区三区免费丨| 国产人在线成免费视频| 日本免费人成黄页网观看视频| 免费一级一片一毛片| 亚洲成在人天堂一区二区| 亚洲欧洲日本在线观看| 一个人在线观看视频免费| 亚洲香蕉久久一区二区| 窝窝影视午夜看片免费| 最近2019免费中文字幕6| 免费国产精品视频| 四虎影视久久久免费| 亚洲日韩精品无码专区网址 | 国产四虎免费精品视频| 亚洲国产精品成人久久蜜臀| 久久久久亚洲AV无码永不| 久久久久亚洲AV无码去区首| 97av免费视频| 亚洲一区二区三区免费观看| 国产在线一区二区综合免费视频| 国产精品无码一区二区三区免费| 亚洲视频一区二区三区| 两个人看的www视频免费完整版| 成年午夜视频免费观看视频 | 91亚洲性爱在线视频| 波多野结衣免费一区视频 | 中文字幕亚洲无线码| 国产AV日韩A∨亚洲AV电影| 久久A级毛片免费观看| 精品亚洲456在线播放| 四虎精品亚洲一区二区三区| 77777亚洲午夜久久多喷| 国产一级淫片视频免费看| 亚洲精品GV天堂无码男同| 69xx免费观看视频| 97久久精品亚洲中文字幕无码| 麻豆最新国产剧情AV原创免费| 男男gvh肉在线观看免费| 亚洲精选在线观看|