2012-11-01 56 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

哦,男孩,我不知道我錯過了那一個。非常感謝您的幫助! –

相關問題