спасибо за все указатели.
ответ на вопрос заключается в том, что нужно использовать abortBroadcast () в BroadcastReceiver, но самое главное - превратить очередь сообщений в очередь с приоритетами, в противном случае abortBroadcast() не работает.к счастью, это можно сделать в манифесте:
<intent-filter android:priority="1">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
обратите внимание на атрибут android:priority="1"
в элементе фильтра намерений.