BroadcastReceiver не читает всю длину смс - PullRequest
0 голосов
/ 09 апреля 2019

BroadcastReceiver не читает все слова смс, просто читает какое-то слово из него, может, кто-нибудь может мне помочь?

открытый класс SMSBReceiver расширяет BroadcastReceiver {частный статический MessageListener mListener;

@Override
public void onReceive(Context context, Intent intent) {
    Bundle data = intent.getExtras();
    if (data != null) {

        Object[] pdus = (Object[]) data.get("pdus");
        for (int i = 0; i < pdus.length; i++) {
            SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);

            if (smsMessage.getDisplayOriginatingAddress().toString().equals("Samba.")) {
                String message = smsMessage.getMessageBody().toString();
                mListener.messageReceived(message);
            }
        }
    }
}
public static void bindListener(MessageListener listener){
    mListener = listener;
}

1 Ответ

0 голосов
/ 09 апреля 2019

Я думаю, вам просто нужно добавить все смс:

Изменить это:

String message = smsMessage.getMessageBody().toString();



к

String message += smsMessage.getMessageBody().toString();



Таким образом, окончательный код будет выглядеть как -

@Override
public void onReceive(Context context, Intent intent) {
    Bundle data = intent.getExtras();
    if (data != null) {

        Object[] pdus = (Object[]) data.get("pdus");
String message = "";
        for (int i = 0; i < pdus.length; i++) {
            SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);

            if (smsMessage.getDisplayOriginatingAddress().toString().equals("Samba.")) {
                 message += smsMessage.getMessageBody().toString();
                mListener.messageReceived(message);
            }
        }
    }
}
public static void bindListener(MessageListener listener){
    mListener = listener;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...