我使用以下代码发送文本(预套件kat)。当我创建传递给smsManager的意图时,我在意图中添加了一个int额外值。在我打电话给intent.getIntExtra的广播接收器中,它只是给我一个值0.任何想法为什么?广播接收器onReceive未收到意向包
当我打印我在的onReceive到日志的价值,它显示的值是0,每次
这里的发送代码(这是一个for循环,所以“我”可以是任何东西0 - 10):
for (int i = 0; i < getSelectedNumbers().size(); i++) {
Log.d("Pete Debug", "Loop value of i = " + String.valueOf(i));
String number = removeSpecialCharacters(getSelectedNumbers().get(i));
String smsSending = "Sending to " + number + "... ";
Log.d("Pete Debug", smsSending);
statusItems = new SmsStatusItems();
statusItems.setMessage(smsSending);
statusItems.setImage(R.drawable.clock);
smsStatusAdapter.add(statusItems);
Intent sentIntent = new Intent(SMS_SENT);
sentIntent.putExtra(SMS_SENT, i);
Intent deliveredIntent = new Intent(SMS_DELIVERED);
deliveredIntent.putExtra(SMS_DELIVERED, i);
mSmsManager.sendTextMessage(number, null, getFinalMessage(),
(PendingIntent.getBroadcast(getActivity(), 0, sentIntent, 0)),
(PendingIntent.getBroadcast(getActivity(), 0, deliveredIntent, 0)));
}
和这里的广播接收器:
smsSentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int i = intent.getIntExtra(SMS_SENT, -1);
Log.d("Pete Debug", "Sent value of i = " + i);
switch (getResultCode()) {
case Activity.RESULT_OK:
smsStatusAdapter.getItem(i).setImage(R.drawable.pass);
smsStatusAdapter.notifyDataSetChanged();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
smsStatusAdapter.getItem(i).setImage(R.drawable.fail);
smsStatusAdapter.notifyDataSetChanged();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
smsStatusAdapter.getItem(i).setImage(R.drawable.fail);
smsStatusAdapter.notifyDataSetChanged();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
smsStatusAdapter.getItem(i).setImage(R.drawable.fail);
smsStatusAdapter.notifyDataSetChanged();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
smsStatusAdapter.getItem(i).setImage(R.drawable.fail);
smsStatusAdapter.notifyDataSetChanged();
break;
}
}
};
“我” 是一个为int循环,它是介于0到10之间的任何整数,那么你需要什么其他东西?查看我的编辑 – Psest328
来自PendingIntent文档:“人们犯的一个常见错误是创建多个PenttentIntent对象,其Intents仅在其”额外“内容中有所不同,期望每次都获得不同的PendingIntent。” 我认为会发生的事情是,你真的只创建一个PendingIntent,你一遍又一遍地检索。 – marcone