这是我的代码
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
有趣的事:)任何想法是怎么回事?
答案 0 :(得分:1)
使用Intent.setType设置您尝试打开的每个文件的mimetype。因此,只有可以处理特定mimetype的应用程序才会打开
编辑:您可以使用MimeTypeMap.getMimeTypeFromExtension获取文件的Mimetype。
答案 1 :(得分: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:"));