1

我正在尝试通过我的应用程序打开一个 .MSG 文件。我尝试将 MIMETYPE 设置为vnd.ms-outlook,但仍然无法按预期打开 .MSG 文件,然后我尝试在电子邮件中附加相同的 .MSG 并在我的设备中打开。它像魅力一样打开。

所以我的问题是,如何在应用程序中以编程方式打开 .MSG 文件。

尝试了以下方法,

方法一:手动设置 MIMETYPE

mimetype = "application/vnd.ms-outlook";

方法2:通过获取MIMETYPEMimeTypeMap

String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); // extension is msg

通过另一个已安装的应用程序打开 .MSG 文件

Log.i(TAG, "Extension :" + extension + "\n" + "MIME :" + mimetype); // Prints msg for extension and mimetype = application/vnd.ms-outlook for method 1 and null when i use method 2
intent.setDataAndType(Uri.fromFile(file),mimetype);
startActivity(intent);

方法 2 中的 mimetype 结果为 null,并且显式设置的 mimetype 也不起作用。

任何人都可以分享他们对解决这个问题的想法。

谢谢。

4

1 回答 1

2

您应该使用意图用另一个应用程序打开文件。试试这个:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(msgURI, mimeTypeString);
startActivity(i);

这应该允许任何已在其清单中注册 MSG 数据类型的应用程序打开它。

于 2012-11-14T17:06:10.170 回答