Я пытаюсь написать приложение службы Android, которое перехватывает исходящие SMS-сообщения (из-за недоступности службы), чтобы сохранить их и попытаться отправить их повторно, как только телефонная служба вернется. Я почти заставил это работать, но у меня есть проблема, которую не так просто объяснить, но я попытаюсь, надеюсь, вы понимаете: я установил ContentObserver в URI content://sms, даже если то, что мне интересно on это content://sms/failure, потому что, если я установлю его на этот последний URI, метод onChange не сработает, и я не знаю, почему. При условии, что успешно отправленные и полученные сообщения меня не беспокоят, поскольку в методе onChange в наблюдателе я читаю только содержимое в content://sms/failed, вот настоящая проблема: onChange срабатывает также при событиях DELETE, из конечно, которые происходят, например, в момент успешной отправки ранее неудачного сообщения. Это плохо для моего приложения, потому что, если я не могу различить событие удаления и событие добавления, я не знаю, нужно ли мне добавлять первое sms в очереди сообщений с ошибками в список «повторно отправить». Итак, мой вопрос: есть ли способ различать события удаления и добавления с помощью наблюдателя контента?
PS: Было бы неплохо понять, почему ContentObserver на content://sms/failed не работает.
PPS: у меня есть еще одна небольшая проблема: я повторно отправляю сообщения с помощью SmsManager, который отлично работает, единственная проблема в том, что я могу установить только номер получателя и тело сообщения, но не идентификатор сообщения, поэтому, когда я повторно отправить смс, система думает, что это просто новое смс, а не повторно отправленное старое (поэтому старые неудачные сообщения остаются в очереди и не удаляются системой).