在没有 acrobat 阅读器的情况下从 android 应用程序打开 pdf extern
Posted
技术标签:
【中文标题】在没有 acrobat 阅读器的情况下从 android 应用程序打开 pdf extern【英文标题】:Open pdf extern from android app without acrobat reader 【发布时间】:2015-07-09 11:53:07 【问题描述】:我想在外部查看器中打开我的 android 应用程序中的 pdf。安装 Acrobat Reader 后,一切正常。但是,当未安装 Acrobar 阅读器时,他找不到查看器。 但同一设备上的另一个应用程序能够在谷歌驱动器中打开 pdf。 我也想要这种行为。我必须做什么,这适用于我的应用程序?
所以我现在打开pdf:
final Intent intent = new Intent(Intent.ACTION_VIEW);
String extension = fileName.substring(fileName.lastIndexOf('.'));
intent.setDataAndType(Uri.fromFile(new File("fileName")), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_SINGLE_TOP);
if (!this.context.getPackageManager()
.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).isEmpty())
startActivity(intent);
finish();
【问题讨论】:
【参考方案1】:尝试使用Intent.createChooser()
:http://developer.android.com/training/basics/intents/sending.html#AppChooser
Intent intent=...//your intent
Intent chooser = Intent.createChooser(intent, "Open PDF");
startActivity(chooser);
编辑:
对于 google drive,intent action 是 Intent.ACTION_SEND,您需要设置 extras 来实现您的意图:
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + your_file_path));
【讨论】:
嗨,选择器有效,但我没有选择谷歌驱动器。 @BHuelse,已编辑,尝试操作 Intent.ACTION_SEND @BHuelse,我忘记了答案中的额外内容 嗯,好的,它现在将我的 pdf 加载到谷歌驱动器,哦。但不是我想要的。另一个奇怪的事情是,我只是选择了 acrobat。我也安装了play.google.com/store/apps/…,但这不是一个选项。这是不对还是? 看看developer.android.com/reference/android/content/…,也许这就是你需要的,或者看看其他的意图和动作的组合。以上是关于在没有 acrobat 阅读器的情况下从 android 应用程序打开 pdf extern的主要内容,如果未能解决你的问题,请参考以下文章
使用acrobat阅读pdf文件时手形工具中出现了一个小箭头,如何去掉
解决Adobe Acrobat “正在纠偏图像,正在旋转图像,正在分解页面”问题
在没有 libreoffice 的情况下从 word 创建 pdf