在android模拟器上打开外部PDF文件

Posted

技术标签:

【中文标题】在android模拟器上打开外部PDF文件【英文标题】:Open external PDF file on android emulator 【发布时间】:2014-06-30 11:18:57 【问题描述】:

我试图打开带有外部链接的 PDF 文件,但在 Adob​​e Reader 打开后,提示“文档路径无效”

这是我写的代码:

@Override
            public void onClick(View v) 
                // TODO Auto-generated method stub
                File file = new File("http://www.kb.nl/sites/default/files/docs/pdf_guidelines.pdf");
                                Uri path = Uri.fromFile(file);
                                Intent intent = new Intent(Intent.ACTION_VIEW);
                                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                intent.setDataAndType(path,"application/pdf");
                                try 
                                
                                    startActivity(intent);
                                 
                                catch (ActivityNotFoundException e) 
                                
                                    Toast.makeText(MainActivity.this, 
                                        getString(R.string.app_name), 
                                        Toast.LENGTH_SHORT).show();
                                
            
        );

如何在我的模拟器中打开外部 PDF 文件,我的目标是打开我的谷歌驱动器中的 pdf 文件。

提前致谢。

【问题讨论】:

【参考方案1】:
File file = new File("http://www.kb.nl/sites/default/files/docs/pdf_guidelines.pdf");

http://www.kb.nl/sites/default/files/docs/pdf_guidelines.pdf 不是File 的路径。它是网站的 URL。您不能将 Web URL 包装在 File 对象中并期望它能够工作。

您可以尝试使用Uri.parse("http://www.kb.nl/sites/default/files/docs/pdf_guidelines.pdf") 获取您的Uri 并查看Adobe Reader 是否支持该功能,但我对此表示怀疑。

更有可能,您需要自己下载 PDF,然后在Intent 中使用那个 File

【讨论】:

谢谢,Uri.parse("kb.nl/sites/default/files/docs/pdf_guidelines.pdf") 没用。我怎么下载文件,我觉得从SD卡打开会好很多。 @MedAmini:“我如何下载文件”——使用DownloadManagerHttpURLConnection,或任意数量的第三方 HTTP 包装库。 谢谢,我会试试的:) 嗨,现在我可以下载文件了,我只有一个问题,写这个时: File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/pdf_guidelines. pdf");我应该把我的pdf文件放在哪个文件夹中? @MedAmini:这取决于你。如果它是用户应该独立于您的应用程序使用的文件,请使用Environment.getExternalStoragePublicDirectory() 作为您的基础。否则,使用getExternalFilesDir()Activity 上可用的方法)作为基础。【参考方案2】:

这几行很神奇:

try 
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("Url to pdf or other")));
             catch (ActivityNotFoundException e) 
                //do something here
            

【讨论】:

以上是关于在android模拟器上打开外部PDF文件的主要内容,如果未能解决你的问题,请参考以下文章

React-Native,Pdf 在 android 模拟器上显示,但在实际的 android 设备上出现错误

在android studio中使用上一个和下一个按钮打开不同的pdf文件?

基于android如何读取pdf文件

pdf文件怎么填写

怎么在PDF文件中添加签名啊

如何使我的应用程序对打开 PDF 文件的隐式意图可见?