2012-05-06 36 views
1

这里是我们的应用程序现在的代码片段。在android中填充SMS消息

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

这适用于股票短信应用程序,但测试人员报告说,与handcent短信他们得到一个空白的消息。这促使我用Google Voice试用它,在那里也收到一条空白消息。

有什么方法可以让我的消息文本与所有这些其他SMS应用程序一起使用?

我们有一个剪贴板功能,所以一个糟糕的解决方法至少会有用户推剪贴板按钮,然后使用他们的消息应用程序的选择。

+1

阿里,我不明白你的问题。该应用程序根据不同的变量建立一个文本发送,然后有意发送消息。 – user772913

+0

你可以直接从你的活动发送你的短信,无需打开另一个活动。 SmsManager.getDefault()。sendTextMessage(“phoneNumber”,null,“Sms Body”,null,null);'不要忘记在AndroidManifest.xml中设置权限:'<使用权限android:name =“android。 permission.SEND_SMS“/>' –

+1

好的,但选择地址是什么?另外,用户可能想要自定义发送的消息。 – user772913

回答

0

当你传递这个意图时,它将被传送到所有那些注册了一个活动来接收它的应用程序。换言之,您必须使用您意图处理您的意图的应用程序注册的意图。

1

Android试图尽可能重用Intents。在某些情况下,当你启动一个intent时,android不会创建一个新的Intent并重用以前的意图。为了避免这种设置该标志意向:

smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

这个标志Android的力量创造的意图对堆栈的顶部活动新任务。

+0

伟大的提示,谢谢 – Fattie