将数据放入SMS发送意图?

时间:2009-12-30 20:58:12

标签: android

我想发短信。如果文本太长,我将其拆分为多条消息。我正在尝试将一些额外的信息添加到“已发送”的意图中以了解哪个部分已被发送,以及所有部分何时完成:

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”始终为零,即使对于第二条消息,它也应为1。似乎同样的意图只是不断被扔到我的广播接收器。什么是正确的方法?

由于

2 个答案:

答案 0 :(得分:8)

尝试使用FLAG_ONE_SHOT或以其他方式取消之前的PendingIntent,然后再尝试创建新的{{1}}。

答案 1 :(得分:0)

您需要向广播添加唯一的请求代码(getBroadcast方法的第二个参数),以便发送唯一值。 有关详细信息,请参阅此其他问题:Differentiating delivery reports of two separate SMS's