Мне нужно добавить звук уведомления динамически из необработанной папки - Android
У меня есть файл с именем "notificationsound.mp3" в моей папке raw, а также многие другие звуковые файлы. Мне нужно динамически добавлять звуковые файлы в мои сгенерированные уведомления. Мой подход включал добавление поиска идентификатора ресурса в raw/soundfile и добавление его. "con" - передаваемый контекст. Мой код выглядит следующим образом
//blah blah blah lines of code
String soundname="notificationsound"; // this name will be changed dynamically which is passed via constructor
int res_sound_id = con.getResources().getIdentifier(soundname, "raw", con.getPackageName());
builder.setSound("android.resource://" + con.getPackageName() + "/"+ res_sound_id );
//blah blah lines of code
Конечно, я получаю ошибку в строке builder.setSound() из-за res_sound_id. Я прошел через несколько ссылок, в том числе Как установить уведомление с пользовательским звуком в Android Есть ли лучше (и правильно) делать то же самое?
1 ответ
Ну вот решение для того же. 1) получить идентификатор ресурса 2) создать объект Uri 3) вызвать метод.setSound()
String s="soundname" // you can change it dynamically
int res_sound_id = con.getResources().getIdentifier(soundname, "raw", con.getPackageName());
Uri u= Uri.parse("android.resource://" + con.getPackageName() + "/" +res_sound_id );
builder.setSound(u);