在我的Android应用程序中,我需要编写一个功能,打开设备的短信应用程序(如果存在)。我有以下代码。
String smsText = "Some text for the sms";
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:"));
sendIntent.putExtra("sms_body", smsText);
this.startActivity(sendIntent);
此代码将打开SMS应用程序,但它会在我的应用程序中打开Compose UI。这意味着用户必须退出SMS UI才能继续使用我的应用程序。如果用户从主屏幕或应用程序列表进入应用启动器,它也会以相同的状态打开,因为它只是在应用程序停止的地方恢复。
这是在运行Android 4.3的三星Galaxy S4上测试的
有没有办法完全改变上下文并打开短信应用程序,离开我的应用程序?或者有没有办法在发送短信后关闭短信应用程序?
任何帮助将不胜感激。这种行为不是我的预期,但可能就是Android的运作方式。
**编辑**
“它会在我的应用程序中打开Compose UI” - 我的意思是,SMS应用程序的Compose屏幕已打开。但从任何其他背景来看,它看起来像是我的应用程序。因此,如果我点击主页按钮并返回设备主屏幕,然后单击应用程序图标,它不会返回到我的应用程序所在的最后一个位置,而是再次进入SMS屏幕。如果我查看所有打开的应用程序,则SMS屏幕的图像位于我的应用程序名称下,而不是SMS应用程序的名称。因此,从每个可用资源,看起来好像SMS应用程序正在我的应用程序名称下打开。
答案 0 :(得分:0)
如果您不希望Compose Message UI作为应用程序任务的一部分打开,只需在新任务中启动它,如下所示:
String smsText = "Some text for the sms";
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:"));
sendIntent.putExtra("sms_body", smsText);
sendIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(sendIntent);