我使用以下代碼發送文本(預套件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