2011-04-14 34 views
2

似乎是我需要解析短信廣播接收器期間收到的PDU字節數組:解析短信PDU

@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

我已經找到了解決方案 - 有不錯的Java和點網庫(在Apache許可),它處理所有PDU相關的東西 - 解析等。這是SMSLib

+0

給定鏈接已損壞..希望我們可以使用此https://code.google.com/archive/p/smslib/downloads – RameshJaga 2017-05-26 07:43:18

-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(); 
    }     
} 
+0

請仔細閱讀我的問題。我知道函數createFromPdu() - 這不是我正在尋找的! – barmaley 2011-04-14 13:54:10

+0

@barmaley如果你想要更精確的控制,你應該自己解析它。您可以搜索SMS standart。 – vendor 2011-04-14 14:35:33