2011-08-01 21 views
2

這裏得到所有多餘的值是我的代碼如何從意圖

 Log.i("sdfgsdf", time.toGMTString()); 
     String SENT = "SMS_SENT"; 
     Intent y= new Intent(SENT); 
     y.putExtra("number", phoneNumber); 
     y.putExtra("time", time.toString()); 

     String DELIVERED = "SMS_DELIVERED"; 
     int FLAG_UPDATE_CURRENT =(0x08000000) ; 
     PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, 
     y, FLAG_UPDATE_CURRENT); 

     PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, 
     new Intent(DELIVERED), FLAG_UPDATE_CURRENT); 

     //---when the SMS has been sent--- 
     r= new BroadcastReceiver(){ 
      @Override 
      public void onReceive(Context arg0, Intent arg1) { 

       switch (getResultCode()) 
       { 

        case Activity.RESULT_OK: 
         Toast.makeText(getBaseContext(), "SMS sent"+arg1.getStringExtra("number"), 
           Toast.LENGTH_SHORT).show(); 
         Constant.DB = Compose.this.openOrCreateDatabase("Indigo",MODE_PRIVATE, null); 
         Constant.DB.execSQL("UPDATE Message SET IsMsgSent='true' where DateAndTime='" + arg1.getStringExtra("time") + "' and ContactNumber='"+arg1.getStringExtra("number")+"'"); 
         Constant.DB.execSQL("UPDATE Message SET FolderId='5' where DateAndTime='" + arg1.getStringExtra("time") + "' and ContactNumber='"+arg1.getStringExtra("number")+"'"); 
         Constant.DB.close(); 
         // unregisterReceiver(r); 
         break; 
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
         Toast.makeText(getBaseContext(), "Generic failure"+arg1.getStringExtra("number"), 
           Toast.LENGTH_SHORT).show(); 
         Constant.DB = Compose.this.openOrCreateDatabase("Indigo",MODE_PRIVATE, null); 
         Constant.DB.execSQL("UPDATE Message SET IsMsgSent='false' where DateAndTime='" + arg1.getStringExtra("time") + "' and ContactNumber='"+arg1.getStringExtra("number")+"'"); 
         Constant.DB.close(); 
         // unregisterReceiver(r); 
         break; 
        case SmsManager.RESULT_ERROR_NO_SERVICE: 
         Toast.makeText(getBaseContext(), "No service"+arg1.getStringExtra("number"), 
           Toast.LENGTH_SHORT).show(); 
         Constant.DB = Compose.this.openOrCreateDatabase("Indigo",MODE_PRIVATE, null); 
         Constant.DB.execSQL("UPDATE Message SET IsMsgSent='false' where DateAndTime='" + arg1.getStringExtra("time") + "' and ContactNumber='"+arg1.getStringExtra("number")+"'"); 
         Constant.DB.close(); 
         // unregisterReceiver(r); 
         break; 
        case SmsManager.RESULT_ERROR_NULL_PDU: 
         Toast.makeText(getBaseContext(), "Null PDU"+arg1.getStringExtra("number"), 
           Toast.LENGTH_SHORT).show(); 
         Constant.DB = Compose.this.openOrCreateDatabase("Indigo",MODE_PRIVATE, null); 
         Constant.DB.execSQL("UPDATE Message SET IsMsgSent='false' where DateAndTime='" + arg1.getStringExtra("time") + "' and ContactNumber='"+arg1.getStringExtra("number")+"'"); 
         Constant.DB.close(); 
         // unregisterReceiver(r); 
         break; 
        case SmsManager.RESULT_ERROR_RADIO_OFF: 
         Toast.makeText(getBaseContext(), "Radio off"+arg1.getStringExtra("number"), 
         Toast.LENGTH_SHORT).show(); 
         Constant.DB = Compose.this.openOrCreateDatabase("Indigo",MODE_PRIVATE, null); 
         Constant.DB.execSQL("UPDATE Message SET IsMsgSent='false' where DateAndTime='" + arg1.getStringExtra("time") + "' and ContactNumber='"+arg1.getStringExtra("number")+"'"); 
         Constant.DB.close(); 
         // unregisterReceiver(r); 
         break; 
       } 

      } 

     }; 
     registerReceiver(r, 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: 
         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(); 
     sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);   

當我發送郵件使用for循環IAM得到的只是最後的額外發送sms.how讓所有演員多個短信..?

+0

顯示如何使用循環發送消息以及如何獲取額外消息 – Rasel

+0

在上面的開關情況下獲取額外消息(getresultcode)以及在某些情況下循環通用循環。 – Sando

+0

要標識您擁有的每個意向的附加信息發送不同的請求代碼,同時創建不同的intent.And在onActivityResult取決於請求代碼,你可以識別額外的 – Rasel

回答

9

調用意圖的地方做這樣的

Bundle bundle = new Bundle(); 
bundle.putString("RetailerName", keyword); 
bundle.putString("positon", aString); 
intent.putExtras(bundle); 

接收意向的地方得到這樣

Bundle bundle = this.getIntent().getExtras(); 
    String RetailerName = bundle.getString("retailerName"); 
+0

它工作正常我..謝謝.. – Sando

1

在接收機

Bundle bundle=intent.getExtras(); 
5

數據這應該讓所有的值

Bundle bundle = intent.getExtras(); 

for (String key : bundle.keySet()) { 
    Object value = bundle.get(key); 
    Log.d(TAG, String.format("%s %s (%s)", key, 
    value.toString(), value.getClass().getName())); 
}