2011-06-19 35 views
9

我試圖做的是從用戶那裏獲取選定的鈴聲,設置鬧鐘管理器鬧鐘以在鬧鐘關閉時播放該鈴聲。但我需要將鈴聲保存在數據庫中,以便在手機重新啓動後重置所有鬧鐘。Android:將android.net.Uri對象保存到數據庫中

我的問題是什麼是最好的方式來保存鈴聲Uri到數據庫以後檢索?

我試過如下:

1)保存在數據庫中的鈴聲標題,然後檢索它並將它添加到一個默認鈴聲路徑。但問題是,鈴聲可能從不同的位置加載 2)存儲uri模式,模式spefici部分和片段,然後調用Uri.fromParts創建Uri。 3)從Uri創建一個inputStream,byte []數組,並將其保存爲blob,然後將其讀回並將結果投射到Uri

這些都不起作用。

非常感謝您的幫助。

回答

14

將URI作爲字符串存儲在數據庫中,然後稍後加載。

// This will get the uri in a string format 
String s = mUri.toString(); 

當你從數據庫中檢索的字符串,重建URI是這樣的:

// This will decode the string into a URI 
Uri mUri = Uri.parse(s); 

希望有所幫助。祝你好運!

+0

感謝您的回覆。 Uri.decode返回一個字符串不是Uri。我使用了uri.parse(s),它返回了一個Uri,但它與原來的不一樣(大量缺失的信息和字段)。所以MediaPlayer不能正常播放,並在準備過程中中斷。 – Sammy

+1

嘗試使用uri.toString()以字符串格式獲取uri –

+1

感謝toString的工作。 – Sammy

相關問題