2015-05-01 93 views
0

我正在开发一个应用程序,我在比较接收到的短信文本与现有的字符串变量,如果文本匹配的东西弹出其他不会在哪里做错了?如何比较CurrentMessage.GetDisplayMessageBody()与字符串值

public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    final Bundle bundle = intent.getExtras(); 

    final String pwd = "123"; 


    if(bundle != null) 
    { 

     final Object[] pdusObj = (Object[]) bundle.get("pdus"); 

     for (int i = 0; i < pdusObj.length; i++) { 

      SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); 
      String phoneNumber = currentMessage.getDisplayOriginatingAddress(); 

      String senderNum = phoneNumber; 
      String message = currentMessage.getDisplayMessageBody(); 


      Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message); 
      if(message == pwd) 
      { 


      // Show Alert 
      int duration = Toast.LENGTH_LONG; 
      Toast toast = Toast.makeText(context, 
         message, duration); 
      toast.show(); 
      } 
      else 
      { 
       int duration = Toast.LENGTH_LONG; 
       Toast toast = Toast.makeText(context, "Doesn't match", duration); 
       toast.show(); 
      } 


     } // end for loop 

但条件不成真..总是“别人的”吐司显示!

回答

0

在比较字符串的情况下使用:

if(message.equals(pwd)) 

insted的的:

if(message == pwd) 
+0

非常感谢你的先生!它的工作现在! –

+0

如果message.equals(pwd)条件变为真,我可以告诉我如何将我的电话音量从静音更改为100%? –

+0

如果我的答案可以帮助你,你可以接受(赞)它。对于其他查询,你必须提出新的问题。 –