2012-12-22 27 views
2

在我的應用程序中,我需要用戶選擇鈴聲作爲應用程序聲音。我使用RingtoneManager.ACTION_RINGTONE_PICKER來獲取選定的鈴聲。它會返回鈴聲的Uri,我可以將其轉換爲鈴聲,並且一切正常。但這裏有一個棘手的部分:如何將鈴聲存儲爲字符串?

我的所有應用程序數據都保存在一個XML文件中,所以我需要一種方法將鈴聲保存爲String。 我正在考慮使用Uri.getPath()獲取鈴聲路徑並將路徑保存在我的應用中。但是當我需要使用它時,我無法找到將路徑轉換回鈴聲的方法。 下面是我想一個URI轉換爲字符串,並返回的代碼:

String ringtonePath = ringtoneUri.getPath(); 
ringtoneUri = Uri.parse(ringtonePath); 
Ringtone ringtone = RingtoneManager.getRingtone(getActivity(), ringtoneUri); 

它不工作。 logcat的輸出:

Failed to open ringtone /internal/audio/media/13 

和鈴聲獲得null

回答

3

Uri.path只返回URL的path一部分。例如,如果URI是「http://hello.com/world/1」,那麼path只是URI的「/ world/1」部分。您應該將結果Uri.toString()存儲在您的XML中。

+1

工程像魅力。謝謝! –

相關問題