我让用户选择我得到的声音:
String sound = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)
.toString();
我将它存储在共享首选项中。我如何确保设备上仍然可以使用声音?它以
的形式返回内容://媒体/外部/音频/媒体/ 219
或
内容://媒体/内部/音频/媒体/ 34
或者它可能在SD卡或其他任何地方。我需要检查它是否存在,以便我可以在下次显示铃声选择器时选择它。如果文件不存在,则铃声选择器将崩溃。
我试过像这样检查
File file = new File(URI.create(sound).getPath());
if (file.exists()) {
//this is never true
}
答案 0 :(得分:1)
请使用此助手类UriHelpers.getFileForUri()将文件创建为
File file = UriHelpers.getFileForUri(sound)
更新1:您可以使用检查api级别的FileUtils.java getPath()
方法。