android 发短信意图,发送短信,等待额外的意图覆盖

该博客探讨了在Android应用中使用SmsManager发送短信时遇到的问题。作者通过广播接收器跟踪短信的发送和送达状态,但在使用PendingIntent.FLAG_UPDATE_CURRENT时,只能获取到最后一条短信的额外信息。博客询问如何在不覆盖其他行的额外内容的情况下,正确地获取所有短信的状态。同时,作者也对其在服务中发送短信的方法是否合适进行了疑问。
摘要由CSDN通过智能技术生成

嗨,我正在通过我的服务中的SmsManager从我的应用程序发送消息,并为要发送和传递的短信注册广播接收器,我希望在消息到达或不到达时更新消息状态。按照现在,我可以通过将带有行ID的Extras放在带有flag的Pending Intent中来发送消息PendingIntent.FLAG_UPDATE_CURRENT。但是,一旦发送了消息,我将只接收广播事件以及最后一行的额外内容,而我无法检索其他行的额外内容。我正在使用PendingIntent.FLAG_UPDATE_CURRENT,这就是为什么其他函数被覆盖的原因,我也检查了其他标志,但没有用。如何在不被覆盖的情况下获得其他行的额外内容?我在服务中发送短信的另一件事是这种方法正确吗?任何建议都会有

很大帮助。

String mSelectionClause = MyContentprovider.STATUS+ " = ?";

String[] mSelectionArgs = {"fail"};

Uri students = MyContentprovider.CONTENT_URI_SENDMSG;

Cursor c = getContentResolver().query(students, null, mSelectionClause, mSelectionArgs, "userphno");

if (c.moveToFirst()) {

do{

String SENT = "SMS_SENT";

String DELIVERED = "SMS_DELIVERED";

Intent SENTINTENT=new Intent(SENT);

SENTINTENT.putExtra("id",c.getString(c.getColumnIndex( MyContentprovider._ID)));

SENTINTENT.putExtra("userno", c.getString(c.getColumnIndex( MyContentprovider.USER_PHNO)));

if(c.isLast()){

SENTINTENT.putExtra("lastrow", "true");

}

Intent DELIVEREDINTENT=new Intent(DELIVERED);

DELIVEREDINTENT.putExtra("id",c.getString(c.getColumnIndex( MyContentprovider._ID)));

DELIVEREDINTENT.putExtra("userno", c.getString(c.getColumnIndex( MyContentprovider.USER_PHNO)));

PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,

SENTINTENT, PendingIntent.FLAG_UPDATE_CURRENT);

PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,

DELIVEREDINTENT, PendingIntent.FLAG_UPDATE_CURRENT);

String msg= c.getString(c.getColumnIndex( MyContentprovider.MESSAGE));

SmsManager sms = SmsManager.getDefault();

sms.sendTextMessage( c.getString(c.getColumnIndex( MyContentprovider.USER_PHNO)), null, msg, sentPI, deliveredPI);

在广播接收器中,我在其中存储行的ID,没有太多代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值