我的问题是:是否有可能在Android中获取资源的绝对路径(在res /文件夹的子目录中)?
我在google上看到这个问题的大部分答案建议获取文件描述符,暗示这是不可能的。
是吗?编辑:我之所以这样做是因为我正在编写接受媒体路径并播放它的类。如果我可以传递资源的绝对路径,测试会容易得多。
答案 0 :(得分:31)
使用URI路径而不是“绝对”路径,请参阅this post
Uri path = Uri.parse("android.resource://com.segf4ult.test/" + R.drawable.icon);
Uri otherPath = Uri.parse("android.resource://com.segf4ult.test/drawable/icon");
或者使用openRawResource(R.id)打开一个inputStream,并以与使用FileInputStream(readonly)相同的方式使用它
答案 1 :(得分:13)
不可能。您看到的资源文件夹被编译到apk中,它甚至可能不会存储。 (例如,那些布局xml文件在编译后不再是xml文件)
两种可能的解决方案/解决方案适用于您的情况:
答案 2 :(得分:6)
一般来说,否。由于在这里重复了几次,您需要通过资源访问它们。
那就是说,你有办法解决这个问题:
/data/data/yourapp/
或/tmp/
在任何情况下,您都要测试一种很可能在大多数设备中不起作用的解决方案。我建议您按照开发指南中的说明进行操作:http://developer.android.com/guide/topics/data/data-storage.html