2012-04-12 85 views
4

我注意到,通過Android中的標準SmsManager發送的跟蹤未決意圖似乎並未保留其中的額外信息。例如:跟蹤在Android中發送的短信

Intent sentIntent = new Intent(SENT); 
sentIntent.putExtra("value1", "foo"); // <- note this value 
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent, 0); 

SmsManager sms = SmsManager.getDefault(); 
sms.sendTextMessage(numberToSendTo, null, mMessageToSend, sentPI, null); 

//... in the broadcastReceiver that catches the SENT intent ... 
public void onReceive(Context arg0, Intent arg1) { 

    arg1.getExtras().getString("value1"); // <- nothing, no such key 
} 

有人可以測試了這一點,在這種行爲意圖,我做錯了,或者這是Android予以備案的錯誤?

+0

代碼將intent對象封裝到PendingIntent對象中。代碼將價值放在intent對象中,而不是掛起的Intent對象。所以我懷疑你在onReceive方法中得到的是同一個intent對象或PendingIntent類的Object。 – Relsell 2012-04-12 06:17:30

回答

1

嘗試在創建PendingIntent時添加標記FILL_IN_SELECTOR(有關標記及其一般行爲,請參閱PendingIntent.getBroadcast的規範)。這應該會迫使PendingIntent接受來自Intent的所有頂級附加服務。