Парсинг СМС ПДУ - PullRequest
       67

Парсинг СМС ПДУ

3 голосов
/ 14 апреля 2011

Похоже, мне нужно проанализировать байтовый массив PDU, полученный во время SMS BroadcastReceiver:

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

Может кто-нибудь указать мне, как это сделать?

Я знаю, что PDU можно обрабатывать с помощью SmsMessage.createFromPdu((byte[]) pdus[i]), но это не то, что я ищу.Мне нужно более точное управление байтами pdu.

Ответы [ 2 ]

2 голосов
/ 22 мая 2011

Я нашел решение - есть хорошая библиотека Java и dot NET (под лицензией Apache), которая обрабатывает все связанные с PDU вещи - разбор и так далее.Это SMSLib

0 голосов
/ 14 апреля 2011
@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();
    }                
}
...