安卓短信意图exit_on_sent会删除短信内容

3
我知道之前有人提出了这个问题,在这里在这里,但在回复中从未解决此问题(说实话,这也不是问题的重点)。
我不是在问如何在使用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
我可以问一下,人们没有回答这个问题的原因是因为提问不清楚,或者在错误的位置提问,或者其他类似的原因吗? - hughjdavey
你好,你解决了这个问题吗? - Rat-a-tat-a-tat Ratatouille
1个回答

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

在Android 12上使用exit_on_sent不起作用。不确定是因为Android的更改还是其他原因。 - Dave Nottage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接