请注意这不是重复。我没有找到这个问题的工作答案,即不首先将文件复制到外部存储器。
关于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中打包大文件并进行访问。不幸的是,我使用的库需要一个文件句柄,所以没有办法解决这个问题。
上面的例子我做错了什么?这是一个空白的应用程序,我只是将任意随机文件复制到原始文件夹。
答案 0 :(得分:0)