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
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 😁