Android资源的文件句柄

时间:2014-07-30 06:15:16

标签: java android android-resources

请注意这不是重复。我没有找到这个问题的工作答案,即不首先将文件复制到外部存储器。


关于stackoverflow的各种答案,我找到了一种通过文件句柄访问Android原始资源的方法:

Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.wikipedia);
File file = new File(uri.getPath());
Log.v("MyActivity", "File exists: " + file.exists());

我也尝试过:

Uri uri = Uri.parse("android.resource://" + getPackageName() + "/raw/wikipedia.png");
File file = new File(uri.getPath());
Log.v("MyActivity", "File exists: " + file.exists());

尝试对包名称进行硬编码和/或使用uri.toString()。

但是我从来没有得到文件句柄,日志总是声明:

V/MyActivity﹕ File exists: false

stackoverflow上的其他答案建议在访问之前将文件复制到外部存储,这就是我现在正在做的事情。为什么我应该在系统中存储两次37MB文件?

必须有一种方法可以在APK中打包大文件并进行访问。不幸的是,我使用的库需要一个文件句柄,所以没有办法解决这个问题。

上面的例子我做错了什么?这是一个空白的应用程序,我只是将任意随机文件复制到原始文件夹。

1 个答案:

答案 0 :(得分:0)