Android ContentResolver.insert返回null

Android ContentResolver.insert返回null,android,ringtone,android-contentresolver,Android,Ringtone,Android Contentresolver,在将声音设置为活动内的铃声/通知时,我有时会遇到问题: 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.pu

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

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的内容。
有什么问题吗?

23、24应该是媒体的音量大小。uri应该是相同的

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

我有一种印象,插入函数为您添加的每个不同铃声返回一个唯一的uri?