【发布时间】:2014-07-30 06:15:16
【问题描述】:
请注意这不是重复的。我还没有找到这个问题的有效答案,它不涉及首先将文件复制到外部存储。
关于 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 中打包一个大文件并访问它。不幸的是,我使用的库需要一个文件句柄,所以没有办法解决这个问题。
我在上面的例子中做错了什么?这是一个空白应用程序,我只是将任何随机文件复制到原始文件夹中。
【问题讨论】:
标签: java android android-resources