【问题标题】:File handle to Android resource [duplicate]Android资源的文件句柄[重复]
【发布时间】: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


    【解决方案1】:

    【讨论】:

    • 感谢您的评论。基本上他只是将文件复制到外部存储然后访问它。这就是我现在正在做的事情。但我不想为了访问它而在系统中存储两次 37MB 文件。一定有别的办法吗?
    猜你喜欢
    • 2015-09-29
    • 1970-01-01
    • 2023-04-10
    • 2010-12-23
    • 1970-01-01
    • 2017-10-30
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多