【问题标题】:Accessing files stored in emulated storage访问存储在模拟存储中的文件
【发布时间】:2013-05-30 19:58:45
【问题描述】:

我目前有一个从服务器下载文件的应用程序,默认情况下它们存储在 /storage/emulated/0/ 下。我进行了设置,以便他们下载到一个名为“数据”的文件夹。文件成功下载并解压缩到 /storage/emulated/0/data/unzipped ,但是,当我尝试将存储在 data 文件夹下的 html 文件加载到 webview 中时,我收到一条错误消息,指出该文件不能成立。我使用 Astro 文件管理器仔细检查了 html 文件的文件路径,并能够验证我有正确的文件路径。这是我用来将 html 文件加载到 webview 中的语句。

wb.loadUrl(Environment.getExternalStorageDirectory()
                + "/data/unzipped/output.html");

我已经尝试过使用和不使用 .html 扩展名,但仍然没有运气。有任何想法吗?访问模拟存储是否有限制?

【问题讨论】:

  • Environment.getExternalStorageDirectory() 转换为 /mnt/sdcard
  • 当我使用 Log.d("path", Environment.getExternalStorageDirectory()) 记录路径时,它给了我 /storage/emulated/0。
  • 我们可以从 LogCat 中看到错误吗?
  • 我没有在 logcat 中看到一个错误,除了一个可能相关的错误,它说“没有找到用于权限撤销的内容提供者:file:///data/local/tmp/Intercept.apk” . webview 说网页不可用。 /storage/emulated/0/data/unzipped/output.html 处的网页可能暂时关闭,或者它可能已永久移动到新网址。
  • 您的清单中有 READ_EXTERNAL_STORAGE 权限吗?

标签: java android


【解决方案1】:

文件路径不是 URL。使用file:// 方案访问文件。

【讨论】:

    猜你喜欢
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2012-03-30
    • 1970-01-01
    • 2013-10-02
    • 2018-05-28
    • 2021-11-19
    相关资源
    最近更新 更多