2013-03-06 64 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