2015-05-01 144 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

如果我的答案可以幫助你,你可以接受(贊)它。對於其他查詢,你必須提出新的問題。 –