Android Broadcast Receiver для отправленных SMS-сообщений? - PullRequest
24 голосов
/ 13 июня 2009

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

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

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

1 Ответ

21 голосов
/ 08 июля 2009

К сожалению, (в настоящее время) нет способа реализовать 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.

...