0

嗨 :) 我在我的短信接收器类中,它处理传入的短信。它通常工作正常,但我实际上试图阻止一些发件人。我将被阻止的号码放在名为blackList的ArrayList中。下面的代码段显示了我最后在做什么:

    String sender = "";
    boolean allowed = true;
        for(int i=0;i<msgs.length;i++)
        {
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

            sender = msgs[i].getOriginatingAddress();

            if(BlockedNumber.blackList.contains(sender))
            {
                allowed = false;
                break;
            }

            str = "SMS From: " + msgs[i].getOriginatingAddress();
            str += ":";
            str += msgs[i].getMessageBody().toString();
            str += "\n";
        }

        String numm = BlockedNumber.blackList.get(2);
        Toast.makeText(context, numm, Toast.LENGTH_LONG).show();
        Log.d("CHEKK", numm);

        if(allowed == true){

            //.makeText(context, str, Toast.LENGTH_LONG).show();
        }

但它没有按预期工作。因为我试图在 Toast 中显示numm命名变量,但它仍然显示唯一的一个 toast,它显示传入的短信。我已经评论了它,但它仍然显示味精,并且不显示我试图显示的numm命名变量。其次,Log.d 没有显示任何内容。它真的不工作。

请告诉我两件事:

  1. 请告诉我,如果有什么问题?或者我错过了什么?
  2. 我阻止来自指定号码的传入短信的方法是否正确?

谢谢!

…………

这是我完整的 SMS Receiver 类:

package com.example.pingpongsmsremote;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;

public class SMSreceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    BlockedNumber.blackList.add("Zeeshan");
    Bundle bundle = intent.getExtras();
    String str = "";
    SmsMessage[] msgs = null;

    if(bundle != null)
    {
    Object[] pdus = (Object[]) bundle.get("pdus");
    msgs = new SmsMessage[pdus.length];
    String sender = "";
    boolean allowed = true;
        for(int i=0;i<msgs.length;i++)
        {
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

            sender = msgs[i].getOriginatingAddress();

            if(BlockedNumber.blackList.contains(sender))
            {
                allowed = false;
                break;
            }

            str = "SMS From: " + msgs[i].getOriginatingAddress();
            str += ":";
            str += msgs[i].getMessageBody().toString();
            str += "\n";
        }

        String numm = BlockedNumber.blackList.get(0);
        Toast.makeText(context, numm, Toast.LENGTH_LONG).show();
        Log.d("CHEKK", numm);

        if(allowed == true){

            //.makeText(context, str, Toast.LENGTH_LONG).show();
        }

    }

}

}
4

0 回答 0