0

这是我的代码

            Uri fileUri = Uri.fromFile(file);
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setData(fileUri);
            startActivity(intent);

因此,它会打开一个我在我的应用程序中指定的文件。我测试过的前几个文件是 pdf 文件,它工作得很好。现在,我知道这完全是疯子,每次我选择与 pdf 不同的任何东西时 - 它显然试图使用 pdf 文件的程序来打开所选文件并给我这个消息

The document cannot be opened because it is not a valid PDF document

有趣的事情:) 有什么想法吗?

4

2 回答 2

1

使用Intent.setType设置您尝试打开的每个文件的 mimetype。这样只会打开可以处理特定 mimetype 的应用程序

编辑:您可以使用MimeTypeMap.getMimeTypeFromExtension来获取文件的 Mimetype。

于 2012-08-24T17:51:55.290 回答
0

尝试明确指定要打开的类型的类型..例如

Intent intent = new Intent();
Uri path = Uri.fromFile(filename);
intent.setDataAndType(path, "application/pdf");
startActivity(intent);

或者如果出于某种原因您想通过电子邮件发送 pdf,您可以这样做

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("application/pdf");
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(emailIntent, "Send email using:"));
于 2012-08-24T19:48:53.200 回答