在主题How to monitor each of Sent SMS status?中,描述了如何通过广播监控已发送/已发送短信的状态。
但是,我还没有找到:你如何识别广播所属的短信?据我所知,getResultData()和getResultExtras()似乎没有任何信息。
我的用例是:我一个接一个地循环发送多个短信。我想监控每条消息的传递状态/成功。我如何知道哪个广播属于哪个消息。 (延迟每个短信的传送,直到我为每个短信播放广播,这不是一个真正的选择)。
答案 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
希望这有帮助!
Mathias Lin编辑: 重要的是你传递带有挂起意图的标志FLAG_UPDATE_CURRENT,以便附加内容传递并实际到达广播。