我正在尝试找到一种发送包含 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."));
使用时,我注意到以下内容:
(我的结论):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附件的彩信?