如何检查以前选择的媒体文件是否存在?

时间:2017-02-24 11:24:41

标签: android

我让用户选择我得到的声音:

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
}

1 个答案:

答案 0 :(得分:1)

请使用此助手类UriHelpers.getFileForUri()将文件创建为

File file = UriHelpers.getFileForUri(sound)

更新1:您可以使用检查api级别的FileUtils.java getPath()方法。