4

我有一个正在监听 android.provider.Telephony.SMS_RECEIVED 的 BroadcastReceiver。我要截取一些 SMS,所以我会 abortBroadcast(),但不是针对所有 SMS。

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

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

messages 是一个 Object[],这是否意味着它可能是几条短信?或者我可以放心地假设它始终是一条短信。

我的问题是,如果我收到几条短信,而我只需要拦截一条,我就不能正确操作,因为如果我 abortBroadcast() 用户会丢失一些合法的短信,如果我不这样做,他会收到一些他不应该收到的短信.

我在安卓 2.2

4

1 回答 1

1

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

我认为这些链接会有所帮助:

于 2011-06-15T11:14:17.527 回答