已发送/已发送短信:您如何识别广播所属的短信?

时间:2011-05-07 06:12:13

标签: android sms broadcastreceiver android-intent broadcast

在主题How to monitor each of Sent SMS status?中,描述了如何通过广播监控已发送/已发送短信的状态。

但是,我还没有找到:你如何识别广播所属的短信?据我所知,getResultData()和getResultExtras()似乎没有任何信息。

我的用例是:我一个接一个地循环发送多个短信。我想监控每条消息的传递状态/成功。我如何知道哪个广播属于哪个消息。 (延迟每个短信的传送,直到我为每个短信播放广播,这不是一个真正的选择)。

1 个答案:

答案 0 :(得分:5)

的Mathias,

参考您关联的问题中的代码。当您创建由Intent启动的PendingIntent而不是仅仅为其提供操作String时,您可以添加一个额外内容以帮助确定它属于哪个短信... < / p>

Intent sentIntent = new Intent(SENT);
sentIntent.putExtra("smsNumber", someValue);
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent, FLAG_UPDATE_CURRENT);

Intent deliveredIntent = new Intent(DELIVERED):
deliveredIntent.putExtra("smsNumber", someValue);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, deliveredIntent, FLAG_UPDATE_CURRENT);

这样您就可以在BroadcastReceiver

中检索“smsNumber”值

希望这有帮助!

Mathias Lin编辑: 重要的是你传递带有挂起意图的标志FLAG_UPDATE_CURRENT,以便附加内容传递并实际到达广播。