2012-11-14 89 views
0

我試圖通過我的應用程序打開一個.MSG文件。我嘗試將MIMETYPE設置爲vnd.ms-outlook,但仍然無法像我期望的那樣打開.MSG文件,然後嘗試將相同的.MSG附加到電子郵件中並在我的設備中打開。它像一個魅力打開。以編程方式在android中打開.msg文件(Outlook項目文件)

所以我的問題是,我怎樣才能在應用程序中以編程方式在android中打開.MSG文件。

試圖用以下的方法,

方法1:設置MIMETYPE手動

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

方法2:擷取該MIMETYPE通過MimeTypeMap

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也不起作用。

有沒有人可以分享他們的想法解決這個問題。

謝謝。

+0

你是什麼意思我的「開放」?你是否試圖在你的應用程序中解析它或將它發送到另一個應用程序? – toadzky

+0

嗨,我試圖通過另一個支持開放的應用程序打開它.MSG文件說,例如,辦公套件。 –

+0

當我嘗試在我的電子郵件中附加相同的.MSG文件並通過Office套件在我的設備中打開。它被打開了。我試圖打開的方式也一樣。 –

回答

1

您應該使用意圖與另一個應用程序打開文件。試試這個:

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

這應該允許已註冊了清單中打開它味精的數據類型的任何應用程序。

+0

這也是我用過的方式。儘管如此,它並沒有打開已安裝的應用程序。引發ActivityNotFoundException。 –

+0

僅供參考,我已更新代碼(包含實際「打開」文件的代碼) –

+0

我會嘗試查找可讓您查看其他應用程序的清單的應用程序。這裏有一個工作得很好:[PackageExplorer](https://play.google.com/store/apps/details?id=org.andr.pkgexp&hl=en)。找到Office Suite並查看它接受的內容。這應該給你一個好主意,你需要爲你的意圖的數據類型。 – toadzky

相關問題