android Log.d和Toast显示奇怪的行为

时间:2013-04-28 16:30:28

标签: android

嗨:)我在我的短信接收器类中,处理插入的短信。它通常工作正常,但我实际上试图阻止一些发件人。我将阻止的数字放在名为 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。我评论过它,但它仍然显示了msg,并没有显示我想要显示的 numm 命名变量。 其次,Log.d没有显示任何内容。它真的不起作用。

请告诉我两件事:

  1. 请告诉我,如果出现问题?或者我遗失的任何东西?
  2. 是我阻止从指定号码输入短信的方法是正确的吗?
  3. 谢谢!

    .......

    这是我的完整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();
            }
    
        }
    
    }
    
    }
    

0 个答案:

没有答案