首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android上的CDMA PDU解析

Android上的CDMA PDU解析
EN

Stack Overflow用户
提问于 2012-06-25 09:48:18
回答 1查看 2.9K关注 0票数 2

我已经写了一个程序来解码CDMA3GPP2点对点短信。我在互联网上找到的几个CDMA PDU十六进制字符串上测试了它,它工作得很好。然而,当我尝试在Android平台上的所有传入文本消息上实现它时,它总是失败。

我看了看传入的PDU,它似乎不遵循我所习惯看到的相同模式。谁能解释一下这个PDU是什么格式,或者我遗漏了什么才能正确解码这个PDU?是否有其他标题或字段未考虑在内?

从我手机上的传入文本消息中提取的示例PDU:

代码语言:javascript
复制
000000000000100200000000000000000A36373839313031363734000000000000000000001B000310864D000306120624205611010B104C2CF9F3F5EBD73E7000

我找到并测试我的解析器的所有CDMA看起来更像是:

代码语言:javascript
复制
00000210020207028CE95DCC65800601FC08150003168D3001061024183060800306101004044847

运营商:Verizon Phone:运行Android 2.3.3Samsung Galaxy S Fascinate

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-10 03:05:37

请参阅来自$SDK/sources/android-16/com/android/internal/telephony/cdma/SmsMessage:的javadoc

代码语言:javascript
复制
/**
 * Creates byte array (pseudo pdu) from SMS object.
 * Note: Do not call this method more than once per object!
 */

它没有遵循任何特定的...so标准。但是你可以解码它;所以在精美的ASCII艺术中:-

代码语言:javascript
复制
000000000000100200000000000000000A36373839313031363734000000000000000000001B000310864D000306120624205611010B104C2CF9F3F5EBD73E7000
--------messageType     --digitMode                   --------bearerReply   ------------------------------------------------------bearer data
        --------teleService --ton --------------------src     --replySeqNo  --messageID --msts          --userdata
                --------serviceCategory                         --errorClass  --len   --XX--len           --len
                          --numberMode                            --causeCode   ------      ------------2012/06/24 20:56:11
                              --npi                                 --------bearerDataLength                ----------------------userdata
                                --len                                           

请注意,我认为你在消息中犯了一个剪切/粘贴错误-- 00字节的'XX‘我认为不应该出现在那里--幸运的是,它很容易识别日期并倒过来工作。这是一条来自6789101674的带有用户数据的消息:

104C2CF9F3F5EBD73E7000,其中前5位表示它是7位编码的(0x02)。将用户数据的其余部分向左移动5位后,剩下的结果是:

代码语言:javascript
复制
09859f3e7ebd7ae7ce00
--len(septets) 9 septets == 63 bits, so we expect 8 bytes of body
  ----------------7bit-body

所以你解码的7bit-body是"Bggguuugg“。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11182650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档