1

我可以捕捉到新收到的短信。但如果那是多部分消息,我的广播接收器会多次接收消息的所有部分。

有没有办法一次接收整个消息 - 就像默认消息传递应用程序一样?

4

1 回答 1

3

圣...!

在阅读了 Android 源代码(这个文件)之后,我意识到这是一个如此愚蠢的问题......

这是我的接收器:

@Override
public void onReceive(Context context, Intent intent) {
    Log.d(ClassName, "received SMS");

    Bundle bundle = intent.getExtras();
    if (bundle != null) {
        Object[] pdus = (Object[]) bundle.get("pdus");
        // here is what I need, just combine them all  :-)
        final SmsMessage[] messages = new SmsMessage[pdus.length];
        Log.d(ClassName, String.format("message count = %s", messages.length));
        for (int i = 0; i < pdus.length; i++) {
            messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
        }
    }
}// onReceive()

哎呀...我懒得看我的代码。我已经一次收到了消息的所有部分。

于 2012-04-05T18:31:37.100 回答