Подтвердить что ты не робот

Android Broadcast Receiver для отправленных SMS-сообщений?

Я создал BroadcastReceiver и настроил его с помощью фильтра действий android.provider.Telephony.SMS_RECEIVED, поэтому он вызывается каждый раз, когда телефон получает текст.

Есть ли какое-либо событие/действие или другой способ для уведомления моего приложения, когда телефон отправляет текст (предпочтительно, независимо от приложения, которое его отправляет)?

Пока что единственный вариант, который я вижу, - опросить поставщика контента для content://sms/sent, который даже не дает мне всех отправленных текстов, потому что приложения могут выбрать, чтобы не помещать его там.

4b9b3361

Ответ 1

К сожалению, в настоящее время нет способа реализовать BroadcastReceiver, поскольку стандартное приложение sms использует SmsManger для отправки сообщений, но задает конкретные внутренние классы для отправленных и переданных намерений (SmsReceiver.class и MessageStatusReceiver.class соответственно). Не то, чтобы это утешение, но вы можете найти следующий комментарий в приложении Sms источник:

// TODO: Fix: It should not be necessary to
// specify the class in this intent.  Doing that
// unnecessarily limits customizability.

Лучшей альтернативой является опрос content://sms/sent, возможно, используя ContentObserver.