2009-12-30 24 views
3

我想發送短信。如果文本太長,我將它分成多個消息。我試圖把一些額外的信息到「已發送」的意圖知道哪些部分已發送,當所有的配件是否齊全:將數據放入SMS發送的意圖?

ArrayList<String> messageParts = ...; 
for (int i = 0; i < messageParts.size(); i++) { 
    sms.sendTextMessage(
     address, 
     null, 
     messageParts.get(i), 
     generateIntent(context, messageParts.size(), i), 
     null)); 
} 

PendingIntent generateIntent(Context context, int partCount, int partIndex) 
{ 
    Intent intent = new Intent("SMS_SENT"); 
    intent.putExtra("partCount", partCount); 
    intent.putExtra("partIndex", partIndex); 
    return PendingIntent.getBroadcast(context, 0, intent, 0); 
} 

發送的消息,我抓住的意圖時,每部分被髮送 - 但意圖總是有相同的數據。例如,「partIndex」總是爲零,即使對於第二條消息,它應該是一個。看起來像同樣的意圖只是不斷被拋到我的廣播接收器。什麼是正確的方法來做到這一點?

感謝

回答

8

嘗試使用FLAG_ONE_SHOT或試圖創建一個新的前否則取消以前PendingIntent

+1

確切地說;你需要告訴框架不要重複使用相同的PendingIntent。儘管發送多條消息,您是否可以不使用sendMultipartTextMessage方法? – 2009-12-31 01:39:17

+0

我在代碼中使用PendingIntent.FLAG_CANCEL_CURRENT標誌和sendMultipartTextMessage。 – Samuh 2009-12-31 04:52:56