Android Transmissão Receiver para mensagens SMS enviadas?
-
13-09-2019 - |
Pergunta
Eu criei um BroadcastReceiver
e configurado com um filtro de ação android.provider.Telephony.SMS_RECEIVED
por isso é chamado toda vez que o telefone recebe um texto.
Existe algum evento / ação ou outra forma para a minha candidatura para ser notificado sempre que o telefone envia um texto (de preferência independente do aplicativo que envia-lo)?
Até agora, a única opção que vejo é para consultar o provedor de conteúdo para content://sms/sent
que nem sequer me dar todos os textos enviados porque os aplicativos podem optar por não colocá-lo lá.
Solução
Infelizmente não há (atualmente) nenhuma maneira de implementar um BroadcastReceiver
porque o aplicativo sms padrão usa um SmsManger
para enviar as mensagens, mas especifica categorias internos concretos para o envio e intenções entregues (SmsReceiver.class
e MessageStatusReceiver.class
respectivamente). Não que isso serve de consolo, mas você pode encontrar o seguinte comentário na aplicação Sms fonte :
// TODO: Fix: It should not be necessary to
// specify the class in this intent. Doing that
// unnecessarily limits customizability.
A melhor alternativa parece ser polling content://sms/sent
, potencialmente usando um ContentObserver
.