我有一个应用程序,其中包括启动PDF阅读器以允许用户查看应用程序选择的文档。它适用于我的手机但不适用于三星平板电脑。意图似乎工作正常并且选择了阅读器应用程序,但是当选择阅读器时,短时间后会显示错误消息“无法打开文件”。 同一个应用程序也可以启动浏览器和文本应用程序来显示其他文件,这在平板电脑上工作正常。所以我的文件引用都没关系。清单中WRITE的外部存储设置为OK。 当我在平板电脑上选择文档时(不是通过我的应用程序),它会打开确定。我选择了主应用程序的pdf部分,并将其解压缩为一个简单的pdf只读应用程序,仍然是同样的问题。 它似乎是特定于平板电脑 - 任何人都可以帮助我吗?
Intent i = new Intent(Intent.ACTION_VIEW);
File file1 = new File(Environment.getExternalStorageDirectory() + "/Documents/A.pdf");
Uri ur=Uri.fromFile(file1);
i.setType("application/pdf");
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i) ;
答案 0 :(得分:1)
而不是这段代码
Intent i = new Intent(Intent.ACTION_VIEW);
File file1 = new File(Environment.getExternalStorageDirectory() + "/Documents/A.pdf");
Uri ur=Uri.fromFile(file1);
i.setType("application/pdf");
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i) ;
使用这种方式
File pdfFile = new File(Environment.getExternalStorageDirectory(),"namePdfFile.pdf");//File path
if (pdfFile.exists()) //Checking for the file is exist or not
{
Uri path = Uri.fromFile(pdfFile);
Intent objIntent = new Intent(Intent.ACTION_VIEW);
objIntent.setDataAndType(path, "application/pdf");
objIntent.setFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP);
startActivity(objIntent);//Staring the pdf viewer
} else {
Toast.makeText(getActivity(), "The file not exists! ", Toast.LENGTH_SHORT).show();
}
WebView webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
String pdf = "http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf";
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
答案 1 :(得分:0)
Thanks to all for help. Actually I was just confused by the mime types. Read up on this and all is well. App working perfectly along the lines posted by Ironman