解析SMS PDU

时间:2011-04-14 12:31:16

标签: android parsing sms pdu

似乎我需要解析在SMS BroadcastReceiver期间收到的PDU字节数组:

@Override
public void onReceive(Context context, Intent intent) 
{ 
    Bundle bundle = intent.getExtras();
    Object[] pdus = (Object[]) bundle.get("pdus");
}

有人能指点我怎么做吗?

我知道可以使用SmsMessage.createFromPdu((byte[]) pdus[i])来处理PDU,但这不是我正在寻找的。我需要更精确地控制pdu字节。

2 个答案:

答案 0 :(得分:2)

我找到了解决方案 - 有很好的Java和点.NET库(在Apache许可下),它处理所有PDU相关的东西 - 解析等等。这是SMSLib

答案 1 :(得分:-1)

@Override
public void onReceive(Context context, Intent intent) {
    Bundle bundle = intent.getExtras();

    SmsMessage[] msgs = null;

    if (bundle == null) return;

    Object[] pdus =  (Object[]) bundle.get("pdus");

    msgs = new SmsMessage[pdus.length];
    smsCount = msgs.length;
    String originalAddress;
    String tmpSmsBody;
    for (int i=0; i<msgs.length; i++){
        msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

        // Original Address
        originalAddress = msgs[i].getOriginatingAddress();

        // Message body
        tmpSmsBody= msgs[i].getMessageBody().toString();
    }                
}