如何从资产文件获取URI?

我一直在尝试获取资产文件的URI路径。

uri = Uri.fromFile(new File("//assets/mydemo.txt"));

当我检查文件是否存在时,我看到该文件不存在

File f = new File(filepath);
if (f.exists() == true) {
    Log.e(TAG, "Valid :" + filepath);
} else {
    Log.e(TAG, "InValid :" + filepath);
}

有人可以告诉我如何提及资产文件夹中现有文件的绝对路径


没有“资产文件夹中存在文件的绝对路径”。 项目assets/文件夹的内容打包在APK文件中。 使用AssetManager对象在资产上获取InputStream

编辑

要修复下面的一条评论,资产的URL语法是file:///android_asset/... (注意:三个斜杠)。


正确的网址是:

file:///android_asset/RELATIVEPATH

其中RELATIVEPATH是资源相对于资产文件夹的路径。

请注意计划中的3个月。 Web视图不会加载任何我的资产没有3.我试过2(以前)评论CommonsWare,它不会工作。 然后,我在github上查看CommonsWare的源代码,并注意到额外的正斜杠。

这个测试虽然只在1.6 Android模拟器上完成,但我怀疑它在真实设备或更高版本上的差异。

编辑:CommonsWare更新了他的答案,以反映这个微小的变化。 所以我编辑了这个,所以对于他现在的答案还是有意义的。


适用于WebView,但似乎在URL.openStream()上失败。 因此,您需要区分file://协议并按照建议通过AssetManager处理它们。

链接地址: http://www.djcxy.com/p/62547.html

上一篇: How to get URI from an asset File?

下一篇: Android path to asset txt file