2010-12-03 332 views
4

我從活動中設置的聲音作爲鈴聲/通知時有時有一個問題:ContentResolver.insert返回null

ContentValues values = new ContentValues(); 
values.put(MediaStore.MediaColumns.DATA, source); 
values.put(MediaStore.MediaColumns.TITLE, "abc"); 
values.put(MediaStore.MediaColumns.SIZE, new File(source).length()); 
values.put(MediaStore.MediaColumns.MIME_TYPE, mime); 
values.put(MediaStore.Audio.Media.ARTIST, "xyz"); 
values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); 

final Uri curi = MediaStore.Audio.Media.getContentUriForPath(source); 
Uri uri = getContentResolver().insert(curi, values); 

大部分時間URI是一樣的東西「的內容://媒體/外部/音頻/媒體/ 23「,但有時它是空的。 我不知道問題出在哪裏,音頻文件沒問題(它們可以正常播放),顯然插入方法不會拋出任何異常。 我查看了文檔,但沒有任何關於返回null的方法。 可能是什麼問題?

回答

5

內容提供者還不支持遠程異常。當你得到返回的空Uri時,我會查看logcat。我懷疑媒體提供商會拋出某種例外。

0

23,24應該是媒體的音量大小。 uri應該是一樣的。

+0

我有印象插入函數爲您添加的每個不同的鈴聲返回一個獨特的URI? – Froghut 2010-12-03 10:39:18