2010-07-27 18 views
9

我有一个应用程序发送消息到指定的联系人。现在我用发送短信时ACTION_SENDTO和ACTION_VIEW有什么区别?

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:" + phoneNumber)); 

发送消息,它在模拟器和我的N1上效果很好。用户使用HTC的投诉令人难以置信,他们在使用android.mms应用程序时得到了强制关闭。我做了更多的挖掘,我发现有很多发送消息的方法。例如

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phoneNumber)); 

而且还

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.putExtra("address", phoneNumber); 
intent.setType("vnd.android-dir/mms-sms"); 

他们似乎都工作在模拟器和我的设备上完全一样,我无法找到正确的,普遍支持的方式什么官员。有任何想法吗?

+1

你发送一条消息,而不是查看它;就那么简单! :) – 2010-07-27 11:42:30

+0

我会期望至少与正在显示的号码的线程。不是从消息应用程序关闭的力量。 – shoren 2010-07-28 06:46:04

回答

-1

我会试着看看他们是如何在Contacts apps上做到的。

在过去,我有很多与HTC Hero的兼容性问题。我总是用Sense UI编写在手机上运行的代码。我发现如果代码在那里工作,它会在每个Android设备上工作:)。

3

意图描述你的意图。您想做什么?查看关于Intent的文档http://developer.android.com/reference/android/content/Intent.html

在你的情况下,你想发送一些东西,所以ACTION_SENDTO听起来比ACTION_VIEW(用于查看现有记录)更合适。

不幸的是,目前还没有正式的注册表来提供什么意图 - OpenIntents的无畏家伙在http://www.openintents.org/en/intentstable创建了一个维基风格的注册表,但它是众包并且非常不完整。最后,它是关于支持意图的应用程序如何处理它。

就你而言,标准的Android消息传递应用恰好处理ACTION_VIEW,但HTC的自定义应用却没有。我最好的建议是使用ACTION_SENDTO,并处理异常并显示错误消息。请记住,用户可能安装了第三方SMS应用程序。