アクティビティ内からサウンドを着信音/通知として設定するときに問題が発生することがあります。
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 の場合もあります。問題がどこにあるのかわかりません。オーディオ ファイルは問題ありません (問題なく再生されます)。もちろん、挿入メソッドは例外をスローしません。ドキュメントを調べましたが、null を返すメソッドについては何もありません。何が問題なのですか?