Отправленные / доставленные SMS: как определить, к какому SMS относится трансляция? - PullRequest
4 голосов
/ 07 мая 2011

В теме Как отслеживать статус каждого отправленного SMS? описано, как вы можете отслеживать статус отправленного / доставленного SMS с помощью трансляции.

Однако я ненашел: как определить, к какому SMS относится трансляция?Похоже, что нет никакой информации ни в getResultData (), ни в getResultExtras (), насколько я это проверил.

Мой пример использования: я отправляю несколько SMS в цикле один за другим.Я хочу отслеживать статус / успешность доставки каждого сообщения.Как узнать, какая трансляция принадлежит какому сообщению?(Задержка доставки каждого смс до тех пор, пока я не получу трансляцию для каждого предыдущего, на самом деле не вариант).

1 Ответ

5 голосов
/ 07 мая 2011

Mathias

Ссылаясь на код в вопросе, который вы связали. Когда вы создаете Intent для запуска с помощью PendingIntent вместо того, чтобы просто дать ему действие String, вы можете добавить к нему дополнительное, чтобы определить, к какому SMS он относится ...

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);

Таким образом вы сможете получить значение "smsNumber" внутри BroadcastReceiver

Надеюсь, это поможет!

Редактирование: Матиас Лин: Важно, чтобы вы передали флаг FLAG_UPDATE_CURRENT с ожидающим намерением, чтобы дополнительные функции передавались и фактически поступали с трансляцией.

...