如何从MS-Excel或MS-Word中的应用程序意图打开excel,doc文件 – Android

我的要求是下载和查看我的应用程序中的Excel,Doc文件。 所以我下载了电话存储器中的Excel / Doc文件,并通过传递文件path来调用ACTION_VIEW Intent。 然后我得到这个错误,说:“尝试将文件保存在设备上,然后打开它。

这是错误Scre​​enShot

我可以很高兴,如果任何人可以build议我另一种select以及打开Excel或DOC文件。 请大家,我已经搜查了很多,迄今为止,我没有find解决scheme,我相信,我用正确的意图打开文件。

我的代码在哪里:

Intent intentpdf = new Intent(Intent.ACTION_VIEW); intentpdf.setDataAndType(Uri.parse(message), "application/msword"); intentpdf.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { mactivity.startActivity(intentpdf); } catch (ActivityNotFoundException e) { if (!mactivity.isFinishing()) Toast.makeText(mactivity, "Install MSWord Viewer.", Toast.LENGTH_LONG).show(); } Intent intentpdf = new Intent(Intent.ACTION_VIEW); intentpdf.setDataAndType(Uri.parse(message), "application/vnd.ms-excel"); intentpdf.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { mactivity.startActivity(intentpdf); } catch (ActivityNotFoundException e) { if (!mactivity.isFinishing()) Toast.makeText(mactivity, "Install Excel Viewer.", Toast.LENGTH_LONG).show(); } 

我有这个完全相同的问题,我修好了。 这个问题很可能是你的ContentProvider / FileProvider实现。 我的Excel工作表在Google表格中打开,但在MS Excel中出现此错误。 解决的办法是将正确的内容types(通过getType()方法)从您的提供程序中退出。 返回错误的内容types将导致错误。

试试这个代码,看看它是否有帮助…如果是这样,你可以完全实现所有types的文件的例程。

  @Override public String getType(Uri uri) { return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; } 

祝你好运!

尝试从文件中获取MIMEtypes

 public String getMimeTypeByFile(String filePath) { MimeTypeMap type = MimeTypeMap.getSingleton(); return type.getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(filePath)); }