2012-04-12 10 views
4

Androidの標準SmsManager経由で送信する追跡保留中のインテントが、余分な情報を保持していないように見えます。例:Androidで送信されたSMSを追跡する

Intent sentIntent = new Intent(SENT); 
sentIntent.putExtra("value1", "foo"); // <- note this value 
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent, 0); 

SmsManager sms = SmsManager.getDefault(); 
sms.sendTextMessage(numberToSendTo, null, mMessageToSend, sentPI, null); 

//... in the broadcastReceiver that catches the SENT intent ... 
public void onReceive(Context arg0, Intent arg1) { 

    arg1.getExtras().getString("value1"); // <- nothing, no such key 
} 

は、誰かがこれをテストすることができ、この動作は意図していたと私はそれが間違ってやっている、またはこれは、Androidのために提出されるバグでしょうか?

+0

コードは、インテントオブジェクトをPendingIntentオブジェクトにラップしています。コードはインテントオブジェクトに値を置き、インテントオブジェクトは保留しません。だから私は、あなたが同じ意図オブジェクトまたはPendingIntentクラスのオブジェクトを取得しているあなたのonReceiveメソッドを疑う。 – Relsell

答えて

1

PendingIntentを作成するときに、フラグFILL_IN_SELECTORを追加してください(フラグとその一般的な動作についてはPendingIntent.getBroadcastの仕様を参照してください)。これにより、PendingIntentにはIntentのすべてのトップレベルの追加情報が反映されます。

関連する問題