Receptor Android difusión de mensajes SMS enviados?
-
13-09-2019 - |
Pregunta
He creado un BroadcastReceiver
y configurado con un filtro de acción android.provider.Telephony.SMS_RECEIVED
por lo que se llama cada vez que el teléfono recibe un texto.
¿Hay algún evento / acción u otra manera para que mi solicitud para ser notificado cada vez que el teléfono envía un texto (preferiblemente independiente de la aplicación que lo envía)?
Hasta ahora, la única opción que veo es a sondear el proveedor de contenidos para content://sms/sent
la que ni siquiera me dan todos los textos enviados ya que las aplicaciones pueden optar por no ponerlo allí.
Solución
Por desgracia, no es (actualmente) no hay manera de poner en práctica un BroadcastReceiver
porque la aplicación estándar de SMS utiliza una SmsManger
para enviar los mensajes, pero especifica clases internas concretas para los intentos enviados y entregados (SmsReceiver.class
y MessageStatusReceiver.class
respectivamente). No es que le sirve de consuelo, pero se puede encontrar en el siguiente comentario de la aplicación SMS fuente :
// TODO: Fix: It should not be necessary to
// specify the class in this intent. Doing that
// unnecessarily limits customizability.
La mejor alternativa parece ser content://sms/sent
de votación, utilizando potencialmente un ContentObserver
.