在android模拟器上打开外部PDF文件
Posted
技术标签:
【中文标题】在android模拟器上打开外部PDF文件【英文标题】:Open external PDF file on android emulator 【发布时间】:2014-06-30 11:18:57 【问题描述】:我试图打开带有外部链接的 PDF 文件,但在 Adobe 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:“我如何下载文件”——使用DownloadManager
、HttpURLConnection
,或任意数量的第三方 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 设备上出现错误