2011-08-01 4 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);   

내가 단지 마지막의 엑스트라를 받고 루프 스피에 대한 모든 엑스트라를 얻을 수 sms.how를 전송하여 여러 SMS를 보낼 때 ..? 의도 장소를 호출

+0

루프를 사용하여 msg를 보내는 방법과 추가 정보를 가져 오는 방법을 보여줍니다. – Rasel

+0

위의 스위치 사례 (getresultcode)에서 엑스트라를 검색하고 일부 조건에서 반복 루프를 사용합니다. – Sando

+0

가지고있는 각 인 텐트 요청 코드에 따라 onActivityResult에서 다른 intent.And를 만드는 동안 다른 요청 코드를 보냈습니다. 추가 – Rasel

답변

9

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

처럼이 모든 값을 리시버

Bundle bundle=intent.getExtras(); 
+0

을 식별 할 수 있습니다. 내게 잘되었습니다. 감사합니다. .. – Sando

1

같은 데이터를 얻을해야 얻을 의도 곳을 수신 할

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())); 
} 
5

에서이

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