2017-02-24 37 views
0

我讓用戶選擇一個聲音,我得到這樣的:如何檢查以前選擇的媒體文件是否存在?

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

請使用輔助類UriHelpers.getFileForUri()創建文件

File file = UriHelpers.getFileForUri(sound)

更新1:您也可以只使用具有檢查FileUtils.javagetPath()方法爲api級別。

+0

不適用於Android 4.3,不能使用它 – TimSim

+0

@TimSim有什麼更新? –

相關問題