我可以捕获新收到的短信。但如果这是多部分消息,我的广播接收器会多次接收消息的所有部分。
有没有办法一次接收整个消息 - 就像默认消息传递应用程序那样?
答案 0 :(得分:3)
圣...!
在阅读Android源代码(this file)后,我意识到这是一个非常愚蠢的问题......
这是我的接收者:
@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()
哎呀......我懒得看我的代码。我已经收到了消息的所有部分。