在没有 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 的方式

使用acrobat阅读pdf文件时手形工具中出现了一个小箭头,如何去掉

解决Adobe Acrobat “正在纠偏图像,正在旋转图像,正在分解页面”问题

在没有 libreoffice 的情况下从 word 创建 pdf

在没有 Segue 的情况下从 UITableViewCell 打开视图控制器

如何在没有开发人员帐户的情况下从 .app 文件构建 .ipa 文件?