Search code examples
androidbroadcastreceiver

android abortBroadcast doesn't stop sms from being broadcasted


in my onReceive method I have this code:

if (from.equals(number)) {
    abortBroadcast();
    in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(in);
    Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(context, "Not from needed number", Toast.LENGTH_SHORT).show();
}   

where number = "29853" - number messages from which I wanna catch and not save in Inbox.

This code works correctly - if sms is from number the first Toast works and it prints the content of the message, if sms is not from number "Not from needed number" is printed. The problem is that abortBroadcast doesn't make its businness - the message from number is still in the Inbox of the phone although receiver's priority is 1000:

<receiver android:name=".service_classes.MyReceiver">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED"
                android:priority="1000" />
    </intent-filter>
</receiver>

What's the problem - why doesn't abortBroadcast work?


Solution

  • The abortBroadcast() does not DELETE messages from the inbox, it is just suppressing the status bar notification. To delete the sms from the inbox, refer to this link