请参阅 $SDK/sources/android-16/com/android/internal/telephony/cdma/SmsMessage 中的 javadoc:
/**
* Creates byte array (pseudo pdu) from SMS object.
* Note: Do not call this method more than once per object!
*/
...所以它没有遵循任何特定的 CDMA 标准。但是,您可以对其进行解码;所以在精美的 ASCII 艺术中:-
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
请注意,我认为您在消息中犯了剪切/粘贴错误 - 我认为标记为“XX”的 00 字节不应该存在 - 幸运的是,很容易发现日期并向后工作。所以这是来自 6789101674 的带有用户数据的消息:
104C2CF9F3F5EBD73E7000,前五位表示它是7位编码的(0x02)。将用户数据的剩余部分向左移动了 5 位,我们得到了:
09859f3e7ebd7ae7ce00
--len(septets) 9 septets == 63 bits, so we expect 8 bytes of body
----------------7bit-body
所以你解码的 7 位体是“Bggguuugg”。