我注意到我通过Android中的标准SmsManager发出的跟踪待处理意图似乎没有保留其中的额外信息。例如:
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 :(得分:1)
尝试在创建PendingIntent时添加标记FILL_IN_SELECTOR
(请参阅PendingIntent.getBroadcast
的规范以了解标记及其一般行为)。这应该会强制PendingIntent
接收来自Intent
的所有顶级附加内容。