获取Android资源的路径
我的问题是:是否有可能在Android中获取资源的绝对路径(在res/文件夹的子目录中) 我在谷歌上看到的关于这个问题的大多数答案都建议使用文件描述符,这意味着这是不可能的 是吗获取Android资源的路径,android,resources,absolute-path,Android,Resources,Absolute Path,我的问题是:是否有可能在Android中获取资源的绝对路径(在res/文件夹的子目录中) 我在谷歌上看到的关于这个问题的大多数答案都建议使用文件描述符,这意味着这是不可能的 是吗 编辑:我之所以要这样做,是因为我正在编写接受媒体路径并播放它的类。如果我能通过资源的绝对路径,测试就会容易得多。不可能。您看到的资源文件夹已编译到apk中,甚至可能无法按原样存储。(例如,这些布局xml文件在编译后不再是xml文件) 针对您的情况,有两种可能的解决方案/解决方法: 将文件存储在“/assets”目录中
编辑:我之所以要这样做,是因为我正在编写接受媒体路径并播放它的类。如果我能通过资源的绝对路径,测试就会容易得多。不可能。您看到的资源文件夹已编译到apk中,甚至可能无法按原样存储。(例如,这些布局xml文件在编译后不再是xml文件) 针对您的情况,有两种可能的解决方案/解决方法:
一般来说,否。由于在这里重复了多次,您需要通过资源访问它们 也就是说,有一些方法可以解决这一问题:
- 第一次运行时,将文件从资源/资产复制到内部存储器
- 使用adb将文件推送到任何公共位置,如SD卡(注意,不建议在其中使用绝对路径,因为并非每个设备都可以将驱动器安装到同一位置)
- 使用根目录电话,访问任何文件夹,例如,
或/data/data/yourapp/
/tmp/
或者使用openRawResource(R.id)打开inputStream,并以与使用FileInputStream(只读)相同的方式使用它。这似乎不正确。我刚刚尝试了HPP的答案,效果很好。HPP建议的答案是你最好的方法。请看HPP的答案,你写了你的答案2011,你仍然坚持你的答案吗?它是什么类型的文件?你应该将HPP的答案标记为正确的答案。你标记的那个不是correct@LeonardoAcevedo完成。链接,
Uri path = Uri.parse("android.resource://com.segf4ult.test/" + R.drawable.icon);
Uri otherPath = Uri.parse("android.resource://com.segf4ult.test/drawable/icon");