【问题标题】:Android 5.1.1 app doesn't see local filesAndroid 5.1.1 应用看不到本地文件
【发布时间】:2016-09-07 05:58:44
【问题描述】:

我使用 Phonegap 网站制作了一个网站并将其变成了 Android 应用程序。我有文件存储在 ASUS TF300 平板电脑的本地存储中,我需要一个应用程序来访问它们。要访问文件,我使用这样的链接:

file:///sdcard/original_img/3_1_5.jpg

现在是有趣的部分。如果我在平板电脑上的 Chrome、Firefox 或任何其他浏览器中打开此链接 - 图像就会加载。但是,如果我在 index.html 中启动具有相同链接的应用程序,则根本不会加载图像。

可能是什么?应用程序和浏览器的存储路径是否有所不同?

【问题讨论】:

  • 另外,如果我只是将文件夹复制到平板电脑并使用 Chrome 打开 index.html - 所有文件都会根据需要加载。看起来 PhoneGap 对我的链接做了什么,我不知道。

标签: android path local-storage local


【解决方案1】:

看起来您需要将其添加到您的应用 AndroidManifest.xml 中:

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     ...
 </manifest>

UPDATE来自聊天对话 (based on this thread):

添加config.xml:

<preference name="AndroidPersistentFileLocation" value="Compatibility" /> 
<preference name="AndroidExtraFilesystems" value="sdcard,cache" />

文件路径应如下所示:

 file:///sdcard/<path>

【讨论】:

  • 我明天试试,如果有效,请告诉您。
  • 好的,我尝试使用 WinRAR 打开 .apk 文件并编辑 AndroidManifest.xml。但是里面只有数字,看起来像是某种十六进制代码之类的。我是否只是粘贴您在这些数字下方提到的这一行?令人困惑。
  • 查看thread。如果您的配置文件正确,那么问题可能不在于 android 部分,而在于您的网站本身。
  • 不,当我将网站上传到平板电脑并在任何浏览器中本地打开时,我的网站运行良好 - 所有图像和链接都有效。只有apk版本不起作用。很明显,有些东西会阻止链接在 apk 中访问文件,但在浏览器中一切正常。
  • 您是否尝试像这样访问文件 'cdvfile://localhost/sdcard/
【解决方案2】:

如果您使用上述过程,您可能需要允许使用此行进行访问:

mWebView.getSettings().setAllowFileAccess(true);

或者尝试使用这个替代品(在 html 中)

String base = Environment.getExternalStorageDirectory().getAbsolutePath().toString();
String imagePath = "file:/"+ base + "/original_img/3_1_5.jpg";
String strimg="<img src=\""+ imagePath + "\" alt=\"\" width=\"168\" height=\"120\" v:shapes=\Picture_x0020_421\" />";

【讨论】:

  • 我在哪里添加这一行“mWebView.getSettings().setAllowFileAccess(true);”在 phonegap 在线应用程序生成器中?
  • 2500 0000 0301 1000 1800 0000 2a00 0000 ffff ffff ffff ffff 2400 0000 0301 1000 这就是我在 .apk 内的清单文件中得到的,这些数字的行和行。我只是将您的代码添加到数字中吗?
猜你喜欢
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多