在短信收发的实现中:
第一步需在发送:AT+CMGS=<length>
请问: 这里的 length 他表示的是什么的长度?
注: 网上有资料说 这里的length 是除 中心号码以外的 pdu 编码的长度。但实验失败! 并且发现他的pdu 中没有加入用户数据的长度。
请高手们指点。

解决方案 »

  1.   

    长度 = int.Parse(String.Format("{0:D2}", (整个完整短信的PDU编码.Length - 编码后的短信中心.Length) / 2));
      

  2.   

    顺便问下, 通常,发送短信时。 中心号码处为: 00。 即表示, 该编码的长度为 0。
    此时, 计算 pdu 长度时, 没有将该字节算在内。
    那么, 如果,有中心号码时, 该字节是不是也不用减掉。 而只去掉 91683108..F0 这几个字节?
      

  3.   

    我向 15072643021 这个号码发收送 "中华人民共和国", 如下的pdu 串是正确的吗?
    0031000D916891685170623420F10008A70E0E4E2D534E4EBA6C115171548C56FD计算得到的pdu串的长度为:32
      

  4.   

    呵呵,有点不一样我计算出来的长度29,假设短信中心号码上海移动 86138002105000891683108200105F0 11000D91 685170623420F10008FF 0E4E2D534E4EBA6C115171548C56FD