查看的PDF无法打开文件 - 但仅限于平板电脑

时间:2016-06-23 07:26:15

标签: android pdf

我有一个应用程序,其中包括启动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) ;

2 个答案:

答案 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();

            }

在浏览器中阅读PDF使用以下代码:

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