Я предполагаю, что этот конкретный BroadcastReceiver
прослушивает Telephony.Sms.Intents.SMS_RECEIVED_ACTION
.
Эта конкретная трансляция отправляется системой InboundSmsHandler
здесь .
Вы заметите, что когда система передает SMS_RECEIVED_ACTION
, трансляция не просто запускается с context.sendOrderedBroadcast()
;скорее оно отправляется через context.sendOrderedBroadcastAsUser()
для каждого работающего пользователя .
На Android каждое приложение запускается как отдельный пользователь.
Это означает, что каждое приложениеимеет разрешение на получение SMS-сообщений, будет получать собственную трансляцию для каждого SMS-сообщения, и ваше приложение не может запретить другим приложениям получать эту трансляцию, позвонив по номеру abortBroadcast()
.
. Вызов abortBroadcast()
должен, однако, предотвратить любое будущее.BroadcastReceivers из вашего собственного приложения от получения этой трансляции.