При настройке пользовательского сигнала будильника в Android вместо него воспроизводится сигнал по умолчанию - PullRequest
4 голосов
/ 21 ноября 2011

Я пишу приложение для Soundboard и хочу установить пользовательские файлы ogg в качестве мелодии звонка, тона уведомления и сигнала будильника. Я использую RingtoneManager для этого:

// register with MediaStore content provider
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, newSoundFile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, soundName);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
values.put(MediaStore.MediaColumns.SIZE, newSoundFile.length());
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);

// delete row if it exists
Uri uri = MediaStore.Audio.Media.getContentUriForPath(newSoundFile.getAbsolutePath());
getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + newSoundFile.getAbsolutePath() + "\"", null);

Uri newUri = getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, newUri);

Работает для рингтонов и уведомлений (путем замены TYPE_ALARM), но не для тревоги. Вместо этого он просто воспроизводит звук уведомления Android по умолчанию.

У кого-нибудь есть такая же проблема или, возможно, решение?

...