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á.

Foi útil?

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 .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top