Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter local notification custom sound doesn't work (path issue)


I want setting up a custom sound for my local notification in the Android side. I created a raw folder in the res folder of Android project. This is the part of my code which I put my alarm.mp3 file path in the notification.
var androidPlatformChannelSpecifics =
                    new AndroidNotificationDetails(
                        "$id",
                        not.columnValue + not.deveui,
                        not.columnValue + not.deveui,
                        sound: "@raw/alarm",
                        importance: Importance.Max,
                        priority: Priority.High);

Actually it still sounds with the default system sound.

If I put @raw/alarm.mp3, I got the following exception: Unhandled Exception: PlatformException(INVALID_SOUND, The resource %s could not be found. Please make sure it has been added as a raw resource to your Android head project., null)

note : sound: RawResourceAndroidNotificationSound('alarm'), solved

like image 758
Patrik Penta Avatar asked Dec 10 '25 10:12

Patrik Penta


1 Answers

thanks for sunnyque for giving awesome solution, but here's how i implemented it into my fcm,

first : you have to set "channel_id","playSound: true", "sound: RawResourceAndroidNotificationSound('yourmp3files.mp3')": adding specific channel on flutter_local_notification

Future displayNotification(Map<String, dynamic> message) async {
    var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
      'you_can_name_it_whatever',
      'flutterfcm',
      'flutterfcm',
      playSound: true,
      sound: RawResourceAndroidNotificationSound('yourmp3files.mp3'),
      importance: Importance.max,
      priority: Priority.high,
    );

then, add mp3 file into res/raw/yourmp3files.mp3 adding mp3

after that you need to add keep.xml inside res/raw/keep.xml to include yourmp3files.mp3 into build keep.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@raw/yourmp3files"
    />

your done, now you can test the fcm custom sound in your app, do

uninstal last build

flutter clean

flutter pub get

flutter build apk

flutter run --release

tada 🎉, tell me if its work, hehe

i hope this help someone in the future 😁

like image 58
wahyujus Avatar answered Dec 12 '25 22:12

wahyujus