0

我有一个短信监听器,可以从某个号码中读取短信。它可以毫无问题地读取短信,但是这里有一个错误,如果消息体很大并且分为 2 条消息,则侦听器仅检测到第一个并且不能不理解它应该读取两条消息。

这是我的代码:

if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
            Bundle bundle = intent.getExtras();
            settings = context.getSharedPreferences("settings", context.MODE_PRIVATE);
            SmsMessage[] msgs = null;
            String msg_from;
            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");
                msgs = new SmsMessage[pdus.length];
                if (msgs != null) {
                    for (int i = 0; i < msgs.length; i++) {
                        msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                        msg_from = msgs[i].getOriginatingAddress();

}}}

我该如何解决这个问题

4

1 回答 1

1

试试这个

Bundle bundle = intent.getExtras();
messages = (Object[]) bundle.get("pdus");
smsMessage = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
    smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}

for (int i = 0; i < smsMessage.length; i++)
    mainsms += smsMessage[i].getMessageBody();

你完整的短信是mainsms

于 2016-09-10T07:26:51.667 回答