2013-01-17 128 views
0

爲什麼每當我發送一個短信給聯繫號碼,它總是說「短信發送」,當我只是用一個隨機的手機號碼「12345678910」當然有11位數字。此外,當郵件實際發送或未發送時,它不顯示烤麪包。即使使用隨機的手機號碼沒有送達報告,短信總是顯示「短信發送」 - android

private void sendSMS(String phoneNumber, String message) 
{   
     sentFailed = new ArrayList<String>(); 

     final String phoneNumberCopy = phoneNumber; 
     String SENT = "SMS_SENT"; 
     String DELIVERED = "SMS_DELIVERED"; 

     PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, 
      new Intent(SENT), 0); 

     PendingIntent deliveredPI = PendingIntent.getBroadcast(this, uniqueIdPerSMS++, 
       new Intent(DELIVERED), PendingIntent.FLAG_CANCEL_CURRENT); 

     //---when the SMS has been sent--- 
     registerReceiver(new BroadcastReceiver() 
     { 
      public void onReceive(Context arg0, Intent arg1) 
      { 
       switch (getResultCode()) 
       { 
        case Activity.RESULT_OK: 
         Toast.makeText(getBaseContext(), "SMS Sent", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
         Toast.makeText(getBaseContext(), "Generic failure", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_NO_SERVICE: 
         Toast.makeText(getBaseContext(), "No service", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_NULL_PDU: 
         Toast.makeText(getBaseContext(), "Null PDU", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_RADIO_OFF: 
         Toast.makeText(getBaseContext(), "Radio off", 
           Toast.LENGTH_SHORT).show(); 
         break; 
       } 
      } 
     }, new IntentFilter(SENT)); 

     //---when the SMS has been delivered--- 
     registerReceiver(new BroadcastReceiver() 
     { 
      @Override 
      public void onReceive(Context arg0, Intent arg1) 
      { 
       switch (getResultCode()) 
       { 
        case Activity.RESULT_OK: 
         sentFailed.remove(phoneNumberCopy); 
         Toast.makeText(getBaseContext(), "SMS delivered", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case Activity.RESULT_CANCELED: 
         Toast.makeText(getBaseContext(), "SMS not delivered", 
           Toast.LENGTH_SHORT).show(); 
         break;       
       } 
      } 

     }, new IntentFilter(DELIVERED)); 

     SmsManager sms = SmsManager.getDefault(); 

     //send sms 
     sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);   
} 

回答

0

短信SENT出現,因爲你已經接收到來自onRecive method.When發送的報告,您的信息已發送Onrecive回調方法被調用,它觸發短信發送的消息