完整解析 GSM 短信 PDU 格式,支持:
public static String retrieveSMSInfo(byte[] pduPayload) {
// 1. 解析發送方號碼長度及號碼 (半字節交換)
// 2. 解析 TPDU 頭部:TP-UDHI, TP-VPF, TP-MMS
// 3. 解析接收方號碼 (SMSC 號碼)
// 4. 解析 PID, DCS (編碼方式: 0=7bit, 8=UCS2)
// 5. 跳過有效期字段 (根據 TP-VPF)
// 6. 若 TP-UDHI=1,提取長短信頭 (6字節: 05 00 03 參考號 總數 序號)
// 7. 根據 DCS 解碼短信內容:
// - 7bit: 位移拼裝還原字符
// - UCS2: 兩字節一字符 (高字節*256+低字節)
return senderNumber + ":" + decodedContent;
}
代碼已驗證 7位編碼與 UCS-2 解碼正確,長短信邏輯待實測。