gpt4 book ai didi

android - 如何通过 PendingIntent 发送数据到广播?

转载 作者:IT老高 更新时间:2023-10-28 23:27:45 30 4
gpt4 key购买 nike

我正在尝试通过 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 以正确的方式注册,但 extras 仍然是空的。

有什么想法吗?

最佳答案

将您正在使用的 Intent 中的数据放入待处理的 Intent 中作为额外内容。您将在 BroadCast 接收器的 onReceive 方法中获得此 Intent 。尝试如下定义待定 Intent 。

PendingIntent sentPI = PendingIntent.getBroadcast(activity, 0, intent,PendingIntent.FLAG_CANCEL_CURRENT);

关于android - 如何通过 PendingIntent 发送数据到广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752538/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com