gpt4 book ai didi

android - 将数据传递给广播接收器以获取 SMS 发送报告

转载 作者:行者123 更新时间:2023-11-30 03:06:10 24 4
gpt4 key购买 nike

在 Activity 中我使用 putExtra(String,String) 将数据传递给广播接收器,但问题是当向不同的姓名和号码发送第二条短信时姓名和电话号码没有改变从第一条短信开始几秒钟后。

当我等待很长时间并发送短信时,姓名和号码已更改为正确的姓名和号码。为什么?

如何解决这个问题?

                 SmsManager SM1=SmsManager.getDefault();
ArrayList<String> parts = SM1.divideMessage("Hello");
ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>();
ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>();

size=parts.size();
for (int i=1;i<=size;i++) {

Intent in=new Intent("package.DeliveryReport.SMS_DELIVERED");
in.putExtra("package.DeliveryReport.name", name);
in.putExtra("package.DeliveryReport.phoneNumber", phoneNumber);
deliveryIntents.add(PendingIntent.getBroadcast(this, 0,
in, 0));

}

SM1.sendMultipartTextMessage(phoneNumber,null,parts,sentIntents,deliveryIntents);

广播接收器

public class DeliveryReport extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {


if(intent.getAction().equals("package.DeliveryReport.SMS_DELIVERED"))
{
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
switch (getResultCode())
{
case Activity.RESULT_OK:
vibrator.vibrate(500);
Toast.makeText(context, "SMS DELIVERED to "+intent.getStringExtra("package.DeliveryReport.name")+
" phone "+intent.getStringExtra("package.DeliveryReport.phoneNumber"),Toast.LENGTH_SHORT).show();

break;
case Activity.RESULT_CANCELED:
vibrator.vibrate(500);
Toast.makeText(context, "SMS did not DELIVERED to "+intent.getStringExtra("package.DeliveryReport.name")+
" phone "+intent.getStringExtra("package.DeliveryReport.phoneNumber"),Toast.LENGTH_SHORT).show();
break;
}
}


}

最佳答案

我只需要添加 PendingIntent.FLAG_ONE_SHOT

Intent in=new Intent("package.DeliveryReport.SMS_DELIVERED");
in.putExtra("package.DeliveryReport.name", name);
in.putExtra("package.DeliveryReport.phoneNumber", phoneNumber);
deliveryIntents.add(PendingIntent.getBroadcast(this, 0,
in, PendingIntent.FLAG_ONE_SHOT));

关于android - 将数据传递给广播接收器以获取 SMS 发送报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21780646/

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