5

从活动内部将声音设置为铃声/通知时,我有时会遇到问题:

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 类似于“content://media/external/audio/media/23”,但有时它为空。我不知道问题出在哪里,音频文件还可以(播放正常),显然插入方法不会抛出任何异常。我查看了文档,但没有关于返回 null 的方法。可能是什么问题呢?

4

2 回答 2

7

内容提供者还不支持远程异常。当您返回 null Uri 时,我会查看 logcat。我怀疑媒体提供商会抛出某种异常。

于 2010-12-04T07:34:48.197 回答
1

23 ,24 应该是媒体的音量上下。uri 应该是一样的。

于 2010-12-03T10:17:45.297 回答