У меня есть приложение, которое воспроизводит некоторые звуки в определенные моменты жизненного цикла приложения.Я хочу разрешить пользователю настраивать эти звуки (в настоящее время это mp3-файлы, находящиеся в каталоге res / raw).Я смотрю на RingtonePreference, но не ясно, как я могу добавить новые звуки к показанным значениям и затем использовать их в своем приложении.Если кто-то может указать мне правильное направление, я был бы очень признателен.
Спасибо!
РЕДАКТИРОВАТЬ :
Один из способов, кажется,добавить файл в медиа-магазин.Что-то вроде кода, показанного ниже.Это кажется немного излишним, поскольку теперь в файле манифеста Android необходимо использовать разрешение «android.permission.WRITE_SETTINGS».В идеале я хотел бы просто добавить ресурсы mp3 в качестве параметров, не записывая их в хранилище мультимедиа.
ContentValues content = new ContentValues();
InputStream raw = getResources()
.openRawResource(R.raw.file_name);
File f = new File("android.resource://" + getPackageName() + "/"
+ R.raw.clock_ticking);
content.put(MediaStore.MediaColumns.DATA, f.getAbsolutePath());
content.put(MediaStore.MediaColumns.TITLE, "TITLE");
content.put(MediaStore.MediaColumns.SIZE, 215454);
content.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
content.put(MediaStore.Audio.Media.ARTIST, "artist");
content.put(MediaStore.Audio.Media.DURATION, 230);
content.put(MediaStore.Audio.Media.IS_RINGTONE, false);
content.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
content.put(MediaStore.Audio.Media.IS_ALARM, false);
content.put(MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(f
.getAbsolutePath());
Uri newUri = getContentResolver().insert(uri, content);
РЕДАКТИРОВАТЬ 2: Другой способ - использовать настройки списка.Хотя настройки списка будут работать - вам придется вручную «воспроизводить» звук при изменении выбора.Дайте мне посмотреть, работает это или нет, и я бы доложил.