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

であると私は最後のエキストラを取得ループIAMのためのすべての特典を得るためにsms.howを送っ使用して、複数のSMSを送信するとき..?目的の場所を呼び出す

+0

ループを使用してメッセージを送信する方法と、追加情報を取得する方法 – 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"); 
関連する問題