【发布时间】:2011-10-08 19:32:32
【问题描述】:
我正在尝试通过PendingIntent 发送一些额外的数据,例如:
MyMessage message;
//...
Intent intent;
SmsManager sms = SmsManager.getDefault();
intent = new Intent(Constants.SENT_PLAIN);
intent.putExtra(Constants.EXTRA_RAW_ID, message.getId()); //putting long id (not -1L)
PendingIntent sentPI = PendingIntent.getBroadcast(activity, 0, intent, 0);
intent = new Intent(Constants.DELIVERED_PLAIN);
intent.putExtra(Constants.EXTRA_RAW_ID, message.getId());
PendingIntent deliveredPI = PendingIntent.getBroadcast(activity, 0, intent, 0);
sms.sendTextMessage(phoneNumber, null, message.getBody(), sentPI, deliveredPI);
然后在Broadcast 试图抓到数据:
@Override
public void onReceive(Context context, Intent intent) {
String message, prefix = "";
String action = intent.getAction();
long id = intent.getLongExtra(Constants.EXTRA_RAW_ID, -1L); //here I receive id=-1
// blah-blah....
}
我看到Broadcast onReceive() 被调用了——这意味着Broadcast 以正确的方式注册,但仍然是空的。
有什么想法吗?
【问题讨论】:
-
我在这里做过类似的事情!!! stackoverflow.com/questions/14571564/…
标签: android android-intent broadcastreceiver android-pendingintent