mardi 6 mars 2018

Problems with SmsBroadcastReceiver

First of all, not native english speaker.

I make my .java work with the default code... so it refreshme with the newest sms when they yet come...

But i want to USE them.. something like the following example:

public void onReceive(Context context, Intent intent) {
    Bundle intentExtras = intent.getExtras();

    if (intentExtras != null) {

                Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
                String smsMessageStr = "";
                for (int i = 0; i < sms.length; ++i) {
                    String format = intentExtras.getString("format");
                    SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i], format);
                    String address = smsMessage.getOriginatingAddress();
                    String smsBody = smsMessage.getMessageBody().toString();

                    String case1 = "@#A";
                    String case2 = "@#*";


                    if(smsBody.matches(case1))
                            {
                                smsMessageStr += "De: " + address + "\n";
                                smsMessageStr += "Este mensaje es generado por el mensaje generico recibido,'@#A'" + "\n";
                            }
                    else if(smsBody.matches(case2))
                        {
                        smsMessageStr += "De: " + address + "\n";
                        smsMessageStr += "Este mensaje es generado por el mensaje generico recibido,'@#*'" + "\n";
                        }
                    else
                    {
                        smsMessageStr += "De: " + address + "\n";
                        smsMessageStr += smsBody + "\n";
                    }
                }

                if (MainActivity.active) {
                    MainActivity inst = MainActivity.instance();
                    inst.updateInbox(smsMessageStr);
                } else {
                    Intent i = new Intent(context, MainActivity.class);
                    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(i);
                }

It is working perfect with the "if(smsBody.matches(case1))" if matches, but if i send a msg with the smsbody == case2, it just give me the "else" statement... making my else if useless...

Some information?

Aucun commentaire:

Enregistrer un commentaire