首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android中如何在接收方短信删除每条报告时向接收方传递代码

android中如何在接收方短信删除每条报告时向接收方传递代码
EN

Stack Overflow用户
提问于 2012-10-10 22:33:44
回答 1查看 399关注 0票数 2

我想开发一个短信应用程序,这将发送多个短信在同一时间。我想给短信设置一个id。在短信发送报告中,我想得到这个id。因此,我将了解到已经发送了特定的消息。

我已经添加了广播接收器。我也收到了短信发送的报告。

我发了10条短信,我收到了8条短信报告。如何辨别哪两条消息未发送,以便重新发送?

EN

回答 1

Stack Overflow用户

发布于 2012-10-10 23:33:13

对于您发送的每条短信(或部分短信),您都需要提供一个PendingIntent。您在PendingIntent中放置了一个意图,无论发送成功与否,您都将收到该意图。在这种情况下,您可以使用extras添加额外的信息。因此,例如,当发送消息时,代码可能如下所示...

代码语言:javascript
复制
String receiverCodeForThisMessage = "STRING_CODE_FOR_MY_SMS_OUTCOME_RECEIVER";
int uniqueCodeForThisPartOfThisSMS = 100*numberSMSsentSoFar+PartNumberOfThisSMSpart;

Intent intent = new Intent(receiverCodeForThisMessage);
intent.putExtra("TagIdentifyIngPieceOfInformationOne", piece1);
intent.putExtra("TagIdentifyIngPieceOfInformationTwo", piece2);

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, uniqueCodeForThisPartOfThisSMS, intent, 0);

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("phonenumber", "Fred Bloggs", "Hello!", pendingIntent, null);

但在此之前,您将注册一个接收器,它将获得结果和您设置的意图;从该意图中提取信息片段:

代码语言:javascript
复制
registerReceiver(new BroadcastReceiver(){

    @Override
    public void onReceive(Context context, Intent intent) {
        // Get information about this message
        int piece1 = intent.getIntExtra("TagIdentifyIngPieceOfInformationOne", -1);
        int piece2 = intent.getIntExtra("TagIdentifyIngPieceOfInformationTwo", -1);

        if (getResultCode() == Activity.RESULT_OK) {
            // success code
        }
        else {
            // failure code
        }
}, new IntentFilter(receiverCodeForThisMessage));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12821943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档