Широковещательный приемник Android для отправленных SMS-сообщений?
-
13-09-2019 - |
Вопрос
Я создал BroadcastReceiver
и настроил его с помощью android.provider.Telephony.SMS_RECEIVED
фильтр действий, чтобы он вызывался каждый раз, когда телефон получает текст.
Есть ли какое-либо событие/действие или другой способ уведомления моего приложения всякий раз, когда телефон отправляет текст (желательно независимо от приложения, которое его отправляет)?
Пока единственный вариант, который я вижу, — это опросить контент-провайдера на предмет content://sms/sent
который даже не дает мне все отправленные тексты, потому что приложения могут не помещать их туда.
Решение
К сожалению, (в настоящее время) нет способа реализовать BroadcastReceiver
потому что стандартное смс-приложение использует 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
.