Search code examples
androidsmsbroadcastreceiver

Suppress / Block BroadcastReceiver in another app


Go SMS recently updated with a new feature "Disable other message notification". The feature causes other applications listening to the incoming SMS broadcast to not fire. For example my application, Shady SMS, listens to the incoming SMS broadcast to send notifications and to actually extract and save the SMS message.

When this new feature in Go SMS is enabled, Shady does not send a notification or save the message ultimately not responding at all to the incoming SMS broadcast.

Go SMS must somehow be unregistering my application's broadcast receiver because the incoming SMS broadcast cannot be aborted. My intent filter is set to android:priority="0".

Any thoughts?


Solution

  • My intent filter is set to android:priority="0".

    This is the lowest possible priority. All other applications will get their chance first before it comes to you. Quoting the documentation:

    It controls the order in which broadcast receivers are executed to receive broadcast messages. Those with higher priority values are called before those with lower values. (The order applies only to synchronous messages; it's ignored for asynchronous messages.)

    So, they are simply calling abortBroadcast(). They probably have their priority jacked to the roof.