2012-11-01 58 views
1

所以我正在研究这个Android应用程序,并且出于某种原因我花了好几个小时来尝试修复并且可能是一些愚蠢的错误,但由于某些原因代码当它到达if语句时不起作用。当我发送诸如“hello”之类的消息时,随着消息的长度弹出消息并且发送者说5和10,这是10位数的电话号码。但是,当它到达if语句时,它不会像平等一样。任何帮助将非常感激。这里是我的代码Android应用程序的IF语句没有像预期的那样运行

public class SmsReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    String msg_from = null; 
    String msgBody = null; 
     if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){ 
      Bundle bundle = intent.getExtras();   //---get the SMS message  passed in--- 
      SmsMessage[] msgs = null; 

      if (bundle != null){ 
      // Toast.makeText(context, "SMS Received", Toast.LENGTH_LONG).show(); 
       //---retrieve the SMS message received--- 
       try{ 
        Object[] pdus = (Object[]) bundle.get("pdus"); 
        msgs = new SmsMessage[pdus.length]; 
        for(int i=0; i<msgs.length; i++){ 
         msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); 
         msg_from = msgs[i].getOriginatingAddress(); 
         msgBody = msgs[i].getMessageBody(); 
         msgBody = msgBody.trim(); 
         msg_from = msg_from.trim(); 



        } 
       }catch(Exception e){ 
          Log.d("Exception caught",e.getMessage()); 
       } 
      } 
     } 
     Toast.makeText(context, "MsgBody length: " + msgBody.length() + "msg_from   length: " + msg_from.length(), Toast.LENGTH_LONG).show(); 
     if (msgBody.length() == 5){ 
      Toast.makeText(context, "Working", Toast.LENGTH_LONG); 
     } 
} 

}

回答

1

你是不是叫show()的敬酒if内。这就是为什么它没有显示。请注意0​​不会阻止 一个Toast将显示在另一个之上。

+0

+1为锐利.. –

+0

@Ramkiran - 谢谢。我自己做了足够多次,我对它很敏感。 :) –

+0

哦,男孩,我不知道我错过了那一个。非常感谢您的帮助! –

相关问题