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 の場合もあります。問題がどこにあるのかわかりません。オーディオ ファイルは問題ありません (問題なく再生されます)。もちろん、挿入メソッドは例外をスローしません。ドキュメントを調べましたが、null を返すメソッドについては何もありません。何が問題なのですか?

4

2 に答える 2

7

コンテンツ プロバイダーは、まだリモート例外をサポートしていません。null Uri が返されたら、logcat を調べます。メディア プロバイダーが何らかの例外をスローしていると思われます。

于 2010-12-04T07:34:48.197 に答える
1

23 、24 は、メディアのボリュームアップとダウンである必要があります。uri は同じである必要があります。

于 2010-12-03T10:17:45.297 に答える