在Android设备上发送带有vCard附件的彩信

时间:2011-03-26 16:29:26

标签: android mms vcard

我正在尝试找到一种发送包含 vCard附件的彩信的方法。我认为这将是一项相当容易的任务,但我仍然没有设法提供适用于各种Android手机的东西。

我尝试的第一件事是:

定义显示能够发送vCard的应用列表的意图

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/x-vcard");
i.putExtra(Intent.EXTRA_TEXT,"MMS with vCard");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse (someFilereference);
startActivity(Intent.createChooser(i, "Select MMS application."));

使用时,我注意到以下内容:

  • 三星Galaxy S 上,选择器允许我选择蓝牙,Gmail 和消息应用。使用消息应用程序时,附件和文本存在,我可以发送彩信。我在旧的Sony Ericson手机(pre-android)上处理了彩信,并且vCard处理得很好。
  • Google Nexus S Motorola DroidX 上,选择器只允许我选择蓝牙和Gmail。 (选择器中缺少消息传递应用)。

(我的结论):Android似乎没有能够满足此处指定的Intent的股票应用程序。 (没有app允许使用text / x-vcard mimeType)。 Galaxy S附带了自己的Messaging应用程序,能够处理vcard mimetype。

这一切都很好,但我们如何解决这个问题呢?

我尝试了以下方法:

通过指定类

直接启动消息传递意图
Intent intent = new Intent(Intent.ACTION_SEND); 
i.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); 
i.setType("text/x-vcard");
i.putExtra("sms_body", "SomeText");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse (someFileRef);  
startActivity(i); 

使用此代码,可直接启动消息传递应用程序。这种方法被选中,因为它至少允许我们在Nexus S上弹出消息传递应用程序(之前使用选择器,消息传递应用程序不存在)。

三星Galaxy S 上,附件将添加到彩信撰写屏幕并正确发送。 在 Google Nexcus S 上,附件不存在。

从Intent中删除mimeType时,Messaging应用会弹出不支持的媒体类型错误消息。

所以问题是:是否有一个简单而统一的代码段,允许您发送带有vCard附件的彩信?

0 个答案:

没有答案