Мне нужно добавить звук уведомления динамически из необработанной папки - 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);
Другие вопросы по тегам