here 和 here 之前我意识到这种担忧,但从未在回复中得到解决(老实说这不是问题的主要焦点)。
我不是在问如何在 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_sent
与 sms_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/