以下是我们应用的代码片段。
public void onClick(View v) {
// TODO Auto-generated method stub
Intent sms = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" ));
sms.putExtra("sms_body", text);
startActivity(sms);
}
这适用于股票短信应用程序,但测试人员报告说,通过便利短信,他们收到一条空白消息。这促使我尝试用谷歌语音,也在那里得到一个空白的消息。
有什么方法可以让我的消息文本与所有这些其他短信应用程序一起使用?
我们有剪贴板功能,所以一个糟糕的解决方法至少会有用户推送剪贴板按钮,然后使用他们选择的消息应用程序。
答案 0 :(得分:1)
Android尝试尽可能多地重用Intents。在某些情况下,当你启动一个intent时,android不会创建一个新的Intent并重用以前的意图。为了避免这种情况,设置了Intent的这个标志:
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
此标志强制Android创建一个新的任务,其意图的活动位于堆栈顶部。
答案 1 :(得分:0)
当您传递此意图时,这将传递给已注册活动以接收它的所有应用程序。换句话说,您必须使用您打算处理意图的应用程序注册的意图