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

¿Fue útil?

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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top