<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 on 2006-06-07 12:02 flyffa 閱讀(1810) 評論(4)  編輯  收藏 所屬分類: 短信/彩信/sms/mms

    Feedback

    # re: 【SMS】怎樣獲得手機的新到短信 2006-09-08 23:25 bpesun@163.com
    tc35i設置成sm sm sm后,仍然不能存儲到sim卡中,是不是等25條me空間用完后才可以存到sim卡中?  回復  更多評論
      

    # re: 【SMS】怎樣獲得手機的新到短信 2006-09-20 10:37 flyffa
    我也很頭痛tc35i的問題,具體搞不太清楚,我的t39默認的工作模式也是存滿sim卡之后才存me,不過可以設置過來,tc35i好像不聽使喚  回復  更多評論
      

    # re: 【SMS】怎樣獲得手機的新到短信 2006-12-11 17:25 robin[匿名]
    滿了25條后可以存到sim卡上。我試驗過。bpesun@163.com
      回復  更多評論
      

    # re: 【SMS】怎樣獲得手機的新到短信 2007-07-07 10:29 崔增強
    at+cpms?

    +CPMS: "SM",16,40,"SM",16,40,"SM",16,40

    這是我的tc35i回復的數據,我暈了,為什么我的tc35i只能存儲到sim卡不能存到me和mt?  回復  更多評論
      

    主站蜘蛛池模板: 亚洲国产人成在线观看| 亚洲韩国精品无码一区二区三区| 亚洲精品免费视频| 你好老叔电影观看免费| 久久久久亚洲?V成人无码| 男人扒开添女人下部免费视频 | 黄页免费在线观看 | 国产三级在线免费| 国产AV无码专区亚洲A∨毛片| 一区二区三区免费视频播放器| 亚洲国产精品尤物yw在线| 国产JIZZ中国JIZZ免费看| 在线观看国产区亚洲一区成人| 中文在线免费视频| 精品无码一区二区三区亚洲桃色| 99re6在线视频精品免费下载| 亚洲性色成人av天堂| 成年女人毛片免费视频| 美女黄频免费网站| 亚洲人成色7777在线观看| 日韩精品内射视频免费观看| 亚洲网站在线免费观看| 日韩毛片免费无码无毒视频观看| 亚洲av片在线观看| 亚洲精品无码久久久久去q| 91热久久免费精品99| 亚洲一区AV无码少妇电影| 亚洲女同成人AⅤ人片在线观看| 182tv免费视频在线观看| 亚洲香蕉久久一区二区| 亚洲AV之男人的天堂| 免费黄网站在线看| 亚洲人成网站999久久久综合| 中文字幕亚洲无线码| 久久久久久毛片免费播放| 亚洲AV无码男人的天堂| 久久亚洲综合色一区二区三区| 免费国产成人高清在线观看网站| 亚洲av综合日韩| 亚洲视频在线观看网站| 免费又黄又爽的视频|