BroadcastReceiver.onReceive每个短信只调用一次吗?

问题描述:

我有一个BroadcastReceiver,用于android.provider.Telephony.SMS_RECEIVED。我要拦截一些短信,所以我会abortBroadcast(),但不是所有的短信。BroadcastReceiver.onReceive每个短信只调用一次吗?

但是当我从意图中提取短信时,我想我可以获得超过一条短信?

Object[] messages = (Object[]) intent.getSerializableExtra("pdus"); 

消息是一个Object [],是否意味着它可能是几个SMS?或者我可以安全地认为它将始终是一条短信。

我的问题是,如果我收到几条短信,我需要拦截只有一个,我不能正常工作,因为如果我abortBroadcast()的用户将失去一些合法的短信,如果我没有,他会得到一些短信他不应该。

我在Android 2.2

我还没有尝试过自己,但按照下面的“每一次短信”规则的链接是不正确的。特别是,onReceive在多部分消息的情况下使用messages.length> 1来调用。

我认为这些链接将是有益的: