2012-06-06 98 views
2

我已经摆弄了很长时间。我找不到为什么我的Android应用程序找不到我的文件/res/raw/video.mp4。我在API 15上,手机与v4.0.3保持同步。访问Android中的资源文件

测试代码目前看起来是这样的:

String file = "android.resource://" + getPackageName() + "/" + R.raw.movie; 
File f = new File(file); 
message = f.exists() ? "file exists" : "file missing"; 

我曾尝试在消息字符串到目前为止结果的所有组合被返回为“文件丢失”。从资源访问文件的正确方法是什么?尝试了明显的“/res/raw/video.mp4”等,但都失败了。

+0

此答案可能对您有帮助吗? http://stackoverflow.com/a/2856501/1063730 – yoshi

+0

是的,我似乎能够使用该输入流打开它,但我需要获取地址作为字符串才能使用ThumbnailUtils.createVideoThumbnail()这是我的主要目标(但我想深入了解为什么我的示例无法正常工作)。 – BlueVoodoo

+0

那么,这将教我在发布答案之前阅读评论... yoshi发布了一条链接,说与我的答案相同的东西。 :p – Barak

回答

3

假设你想开个流处理你应该做这样的文件:

InputStream raw = getResources().openRawResource(R.raw.movie); 

编辑

好了,现在我知道到底是什么你想,我有坏消息,不是真的有可能,

看到这个SO question

基本上,您需要将文件从资源中复制到可以像SD卡或内部存储器那样获取的地方。

+0

是的,这有效,但我不需要为这个测试打开一个InputStream。 – BlueVoodoo

+0

好的。谢谢你的澄清。 – BlueVoodoo

0

String url = "file:///android_asset/raw/filename.jpg“;

+0

同样的结果。尝试过“新文件(”file:///android_asset/raw/video.mp4“)”。也尝试过“file:///android_asset/res/raw/video.mp4”,但这也不起作用。 – BlueVoodoo