Android短信意图exit_on_sent删除邮件正文

时间:2014-07-05 12:56:45

标签: android android-intent android-activity

我意识到此问题已经在herehere之前得到了表达,但在答复中从未得到解决(说实话,这并不是问题的主要焦点)。 / p>

在Android中使用短信意图后,我不会问如何返回。我问如何启用exit_on_sent而没有擦除sms_body的副作用。

这是我的代码:

Intent msg = new Intent(Intent.ACTION_VIEW);
msg.setData(Uri.parse("smsto:01234567899"));
msg.putExtra("sms_body", "\n\nSent from my very own App!");
//msg.putExtra("exit_on_sent", true);
startActivity(msg);

它目前适用于我提供给msg.putExtra()的邮件正文,但之后不会返回,因为以下行被注释掉了。

但是,当我取消注释将exit_on_sent设置为true的行时,虽然返回功能现在可以正常工作,但消息正文在打开时不再出现在SMS应用程序中,也不会出现在消息中发送后查看。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

要让exit_on_sentsms_body一起使用,您需要使用getDefaultSmsPackage,如下所示:

Intent intent;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT, "sms body");
        intent.putExtra("exit_on_sent", true);
        String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(ctx);
        if (defaultSmsPackageName != null)
            intent.setPackage(defaultSmsPackageName);
    } else {
        intent = new Intent(android.content.Intent.ACTION_VIEW);
        intent.setType("vnd.android-dir/mms-sms");
        intent.putExtra("sms_body", "sms body");
    }
    act.startActivity(intent);