如何在android中打开任意大小的PDF?

如何在android中打开任意大小的PDF?,android,pdf,Android,Pdf,我尝试使用嵌入式google文档打开PDF,如下所示: 这可以工作,但不支持/打开大尺寸pdf。然后,根据几个堆栈溢出建议,我尝试使用intent chooser,如下所示: 但这也会引发错误“无法显示pdf(pdf无法打开)”。我不明白这是怎么回事 选项1: 您可以通过以下两种方式之一查看或下载pdf:在设备内置浏览器中打开pdf,或将其嵌入应用程序中,在webview中打开pdf 要在浏览器中打开pdf Intent browserIntent = new Intent(Intent.ACT

我尝试使用嵌入式google文档打开PDF,如下所示:

这可以工作,但不支持/打开大尺寸pdf。然后,根据几个堆栈溢出建议,我尝试使用intent chooser,如下所示:

但这也会引发错误“无法显示pdf(pdf无法打开)”。我不明白这是怎么回事


选项1:

您可以通过以下两种方式之一查看或下载pdf:在设备内置浏览器中打开pdf,或将其嵌入应用程序中,在webview中打开pdf

要在浏览器中打开pdf

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pdf_url));
startActivity(browserIntent);
而是在webview中打开

 Webview webView = (WebView) findViewById(R.id.webView1);
 webView.getSettings().setJavaScriptEnabled(true);
 webView.loadUrl(pdf_url);
选项2:

您可以通过编程方式确定用户设备上是否存在合适的应用程序,而无需捕获异常

Intent intent = new Intent(Intent.ACTION_VIEW,
        Uri.parse("path-to-document"));
intent.setType("application/pdf");
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0);
if (activities.size() > 0) {
    startActivity(intent);
} else {
    // Do something else here. Maybe pop up a Dialog or Toast
}
Intent意图=新意图(Intent.ACTION\u视图,
parse(“文档路径”);
intent.setType(“application/pdf”);
PackageManager pm=getPackageManager();
列出活动=pm.querytentActivities(intent,0);
如果(activities.size()>0){
星触觉(意向);
}否则{
//在这里做点别的。也许弹出一个对话或祝酒词
}

Android没有嵌入式PDF查看API。您可以搜索PDF库,或使用外部应用程序进行搜索。是的,但在选项1的情况下,有时PDF无法加载,并且在大尺寸无法加载时出错
 Webview webView = (WebView) findViewById(R.id.webView1);
 webView.getSettings().setJavaScriptEnabled(true);
 webView.loadUrl(pdf_url);
Intent intent = new Intent(Intent.ACTION_VIEW,
        Uri.parse("path-to-document"));
intent.setType("application/pdf");
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0);
if (activities.size() > 0) {
    startActivity(intent);
} else {
    // Do something else here. Maybe pop up a Dialog or Toast
}