2013-03-31 23 views
7

我試圖獲取保存在手機中的消息ID。 但我未能得到它。 我現有的代碼是在這裏從onReceive獲取消息線程ID或_id android

@Override 
public void onReceive(Context context, Intent intent) { 
    String address = ""; 
    String message = ""; 
    String msg_id=""; 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     Object[] smsExtra = (Object[]) extras.get("pdus"); 

     for (int i = 0; i < smsExtra.length; i++) { 
      SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]); 
      message += sms.getMessageBody(); 
      address = sms.getOriginatingAddress(); 
     } 
     sms = new Sms(msg_id,message, address); 
     UploadSms up = new UploadSms(); 
     up.start(); 
     Toast.makeText(context, 
       "SMS Received>>" + message + "From >>" + address, 
       Toast.LENGTH_LONG).show(); 
    } 

} 

通過這個我得到短信的身體和發送號碼。 但我知道在android手機中每個消息都有一個唯一的編號,我檢索它。 但無法檢索onReceive方法。 謝謝

回答

0

你將不得不解析SMS PDU(原始PDU格式),因爲在android應用層不存在檢索用戶數據頭的API。我相信短消息標識符駐留在用戶數據頭(字節1)中。請參閱帖子Parsing SMS PDU

在這篇文章中,其中一位用戶提到名爲「SMSLib」(在APACHE許可下)的免費軟件,以解析和提取消息參數。消息ID可以使用方法getMessageId() - 類org.smslib.Message中的方法提取。

希望這會有所幫助。

+0

如何從SMSMessage獲取SMS ID? –