Hi all, I am trying to implement an application to send multiple messages one by one using the API function sendTextMessage. As described in SDK document, I created two PendingIntent as the last parameters: sentIntent and deliveryIntent to send back which message has been sent or delivered. But to our surprise, we could only receive the last message's sent and delivery status, and all previous status are lost.
The detailed code is as following: mSentCount = 1; while (mSentCount <= mMOCount) { if (!mStarted) return; // send the message Log.i(StabilityTest.LOG_TAG, String.format("sent sms %d starting...", mSentCount)); Intent sentIntent = new Intent(); sentIntent.putExtra(SMS_SENT_KEY_ID, mSentCount); sentIntent.setAction(ACTION_SMS_SENT); Intent deliverIntent = new Intent(); deliverIntent.putExtra(SMS_SENT_KEY_ID, mSentCount); deliverIntent.setAction(ACTION_SMS_DELIVER); PendingIntent sentPendingIntent = PendingIntent.getBroadcast(this, 0, sentIntent, PendingIntent.FLAG_CANCEL_CURRENT); PendingIntent deliverPendingIntent = PendingIntent.getBroadcast(this, 0, deliverIntent, PendingIntent.FLAG_CANCEL_CURRENT); String content = String.valueOf(mSentCount) + ": " + mSMSContent; SmsManager.getDefault().sendTextMessage(mPhoneNumber, null, content, sentPendingIntent, deliverPendingIntent); // sleep interval try { Thread.sleep(mSentInterval * 1000); } catch (InterruptedException e) { e.printStackTrace(); } if (mSentCount == mMOCount) break; else { mSentCount++; } } And I also implement a BroadcastReceiver to receive the PendingIntent: public class MOSMSResultReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d(StabilityTest.LOG_TAG, String.format("new MO result coming: %s", intent.getAction())); if (intent.getAction().equals(ACTION_SMS_SENT)) { notifyResult(intent, SMS_NOTIFY_SENT_SUCC); } else if (intent.getAction().equals(ACTION_SMS_DELIVER)) { notifyResult(intent, SMS_NOTIFY_DELIVERY_SUCC); } } } When the receiver receives an intent, it will judge what the type of intent is, and notify GUI to update the status. I have tried to increase the interval mSentInterval between two messages, and the sent/delivery result could receive more times. >From the observation, it seems that Android ignores many events when the events of same kinds are flooding in system. My question is how to resolve this issue? Any reply will be appreciated. Thanks, Stanley --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---