Я сохраняю звук из своего приложения для использования в качестве мелодии звонка или звука уведомления. Вот часть моего кода, взята с этой страницы:
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, soundName);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
values.put(MediaStore.Audio.Media.ARTIST, "artist");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
this.getContentResolver().insert(uri, values);
Насколько я понимаю, будет сохранен звук, а также мелодия звонка, звук уведомления и будильник, поскольку все флаги установлены на "true". По крайней мере, на эмуляторе это работает, но на реальном устройстве звук отображается только в списке мелодий звонка, и я понятия не имею, почему.
РЕДАКТИРОВАТЬ: я пытался исследовать дальше: удаление строки с «IS_RINGTONE» ничего не изменит (если только один флаг может быть использован одновременно), звук не отображается в списке с звучит уведомление.
Любая помощь приветствуется.
С уважением, Select0r