在搜索解决方案之后,我从link找到了可以检索路径的方法:
使用资源ID
语法:android.resource://[package]/[resource_id]
示例:Uri.parse("android.resource://com.my.package/" + R.raw.mp3filename);
这正是我想要的。问题是,我正在使用lolipop,它不起作用。解析包/资源时,来自Uri.parse的路径将为null。还有其他方法可以写这个,因为在我的Song类中,我只能访问resourceId(R.raw.mp3filename)。
答案 0 :(得分:1)
是否可以使用R.raw.mp3file
获取文件路径
不,因为它不是设备上的文件。它是您的开发机器的硬盘驱动器上的文件。在设备上,它只是APK文件中的一个条目。
或者:
做任何你试图做的事情,不涉及文件路径,或
在openInputStream()
对象上使用Resources
(您可以通过Context
从任何getResources()
获取一个),并使用Java I / O复制内容该资源到本地文件,例如internal storage