【问题标题】:Unable to open doc or docx files downloaded from URL onto android emulator无法打开从 URL 下载到 android 模拟器的 doc 或 docx 文件
【发布时间】:2019-11-09 09:53:34
【问题描述】:

我希望从 URL 安全地下载或查看应用程序中的 PDF 和 android 文件。通过使用DownloadManager 或以URI 作为参数打开意图,我可以成功下载和打开PDF 文件。相同的代码将下载 doc 或 docx 文件,但是当我尝试在 android 模拟器上打开 doc \ docx 文件(直接来自下载)时,我得到“无法打开文件”。

这是打开意图并下载 docx\doc 文件的代码:

public void openWebPage(String url) {
    Uri webpage = Uri.parse(url);
    Intent intent = new Intent(Intent.ACTION_VIEW, webpage);

    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

你知道为什么我无法打开这些 doc\docx 文件吗?

【问题讨论】:

  • 您的模拟器上可能没有应用程序知道如何显示专有的 Microsoft 文档格式。或者,来自服务器的 MIME 类型不正确,并且您的模拟器上没有应用程序知道如何显示该 MIME 类型。
  • 好的,所以要从应用程序打开文件,我是否需要依赖用户拥有类似谷歌文档的东西?
  • 是的。这与桌面操作系统没有太大区别,您不能假设用户安装了 Microsoft Office 或 LibreOffice 或其他东西。
  • 谢谢,虽然,我已经安装并登录了谷歌文档,我可以将文件复制到谷歌文档并从那里打开它,但我不能只从下载文件夹中打开它,即使当谷歌文档已安装。这似乎有点不同。有道理,谢谢

标签: java android


【解决方案1】:

您有可以显示 *.doc / *.docx 文件的应用程序吗?如果是这样,可能存在类似于 CommonsWare 在他的评论中指出的问题,或者应用程序的正确注册,以便它正确地“反应”你的意图。

如果您的模拟器上没有应用程序来显示此类文件,这意味着没有为您的特定意图注册的应用程序,这反过来意味着它失败了,例如说“无法打开文件”。

如果没有应用程序注册打开此类文件,这是正常和预期的行为。

如果您有打开 Microsoft Word 文档的应用程序,不妨尝试重新安装它,这可能会解决您可能遇到的任何问题。

因此,最终归结为安装/重新安装应用程序以查看 *.doc / *.docx 文件。 应用商店中有无数的 Microsoft Windows 文档查看器。因此,如果您能够从模拟器中访问 Play 商店,请继续 :)

如果这仍然不能解决您的错误,请尝试进一步解释您的问题,例如您使用了哪个应用程序以及它在哪一点失败了。据我所知,您的意图很好,您只是没有应用程序来显示您想要打开的任何类型的文档。

【讨论】:

  • 有没有办法从我的应用程序中打开它?这个答案表明有一种方法:stackoverflow.com/questions/10242306/…
  • 是的,有。本质上,您正在使用您正在使用的 Intent 做正确的事情。我看不出您具体指的是哪个答案,因为您只链接了问题本身,但正如我已经说过的,您需要某种外部应用程序来查看文件,因为 android 本身无法呈现 Microsoft Word 文件。 Intent 基本上是一种广播“嘿,我有事要做,谁能做这个?”,所以你需要一个可以响应这个的应用程序,例如能够显示 *.doc / *.docx 文件。
  • 意图不止于此,但在您的情况下,您可以这样想。
  • 据我所知,您链接的问题中的最佳答案 (stackoverflow.com/a/10242471/10891659) 提供了完美的解决方案。我自己没有测试过,但看起来很准确适合您的情况。
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多