Android SMS intent exit_on_sent 移除消息正文

标签 android android-intent android-activity

herehere 之前我意识到这种担忧,但从未在回复中得到解决(老实说这不是问题的主要焦点)。

我不是在问如何在 Android 中使用 SMS Intent 后返回。我在问如何启用 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 应用程序打开时不再存在,发送后查看时也不在消息中。

感谢您的宝贵时间。

最佳答案

要使 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);

关于Android SMS intent exit_on_sent 移除消息正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586666/

相关文章:

android - 进退两难 : when to use Fragments vs Activities:

带有 Intent 的 Android extra 始终为 NULL

java - 用户单击通知时如何启动 Activity ?

Android - ListView 中项目的进入动画

sql - 在android中创建多表SQL数据库

java - 用于MainActivity和广播接收器之间通信的接口(interface)

android - AndroidManifest.xml application/intent-filter 元素可以包含一个值吗?

java - Android:如何从工作线程到服务进行通信

php - 在 root 的 android 平板电脑上本地 Web 服务器的缺点?

android - 如何有效地将流式数据从服务传递到 Activity ?