2013-03-06 67 views
0

是否可以從短信中提取用戶數據頭?如果是的話,有關如何繼續它的任何想法? 也可以在發送短信之前更改數據頭嗎?訪問短信的用戶數據頭

回答

0

用於接收短信的源代碼有云:

@Override 
    public void onReceive(Context context, Intent intent) { 
     Bundle extras = intent.getExtras(); 
     Log.i(LOG_TAG, "onReceive"); 
     if (extras == null) 
      return; 

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

     for (int i = 0; i < pdus.length; i++) { 
      SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]); 
      String fromAddress = message.getOriginatingAddress(); 
      String messageBody = message.getMessageBody().toString(); 

      Log.i(LOG_TAG, "From: " + fromAddress + " message: " + messageBody); 

      addNotification(context, fromAddress, messageBody); 
     } 
    } 

所以,這是一個字節[]類型,所以如果你有在User Data Header描述UDH良好的知識,我認爲這是可能的。

+0

謝謝。但我對此很陌生。你有沒有任何想法如何從中提取udh值? – newbee 2013-03-06 06:29:33

+0

如果你打算簡單地從SmsMessage獲取udh,你可以參考http://developer.android.com/reference/android/telephony/SmsMessage.html#getUserData() – lynn8570 2013-03-06 06:48:45

+1

這只是給出了用戶數據。而不是用戶數據頭'public byte [] getUserData() 在API級別4中添加 返回用戶數據部分,如果存在用戶數據部分,則減去用戶數據頭部。 – newbee 2013-03-06 07:02:27