NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #230 most downloaded on pub.dev
A cross platform plugin for displaying and scheduling local notifications for Flutter applications with the ability to customise for each platform.
Last release 8 days ago
24 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Some releases are documented
notes for 35 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
318 releases · first in 2018
Nothing published for this version
Nothing published for this version
[Android] plugin has been updated to minimise clashing with other plugins that handle permission requests. Thanks to the PR from Tiernan
One column per quarter.
[Android] added the ability to specify audio attributes of a notification channel via the audioAttributesUsage property belonging to the AndroidNotifi
audioAttributesUsage property belonging to the AndroidNotificationChannel and AndroidNotificationDetails classes. Thanks to the PR from Jonas BornoldAdded more details to 9.8.0 changelog entry to mention that apps will need to change compileSdkVersion to 33 and also updated readme to mention this
compileSdkVersion to 33 and also updated readme to mention thisAs the plugin's APIs don't have breaking changes, this is released a minor release. It does however, require the Android 13 SDK to be install installe…
requestPermission method to the AndroidFlutterLocalNotificationsPlugin class. This make use of the new feature added to Android 13 where an app can request permissions to show notifications. As the plugin's APIs don't have breaking changes, this is released a minor release. It does however, require the Android 13 SDK to be install installed and for apps to change the compileSdkVersion in their app's build.gradle to 33 as the plugin's compileSdkVersion is now 33. Only apps targeting Android 13 can request the permission as well. The latter can be done by updating the targetSdkVersion in an app's build.gradle file to 33. Thanks to the PR from Bartek Pacia. Note: the ability to request the permission as part of calling initialize will be added later on[Android] updated how launch intent is read on Android for the getNotificationAppLaunchDetails method
getNotificationAppLaunchDetails method[Android] added support to specify notification count via the number property that has been added to the AndroidNotificationDetails class. Thanks to t
number property that has been added to the AndroidNotificationDetails class. Thanks to the PR from Katsuya Kato[macOS] fixed issue 1623 where calling zonedSchedule with matchDateTimeComponents set to dayOfMonthAndTime or dateAndTime led to an error
zonedSchedule with matchDateTimeComponents set to dayOfMonthAndTime or dateAndTime led to an error[Linux] Bumped dependency on flutter_local_notifications_linux to ^0.5.0+1 where support for icons to be specified via a file path was added by Yarosl
flutter_local_notifications_linux to ^0.5.0+1 where support for icons to be specified via a file path was added by Yaroslav ProninUpdated example app with to use updated Proguard rules for GSON
onSelectNotification won't be called when an app is launched by a notification so it's more visible[Android] bumped gson dependency to 2.8.9 that fixes CVE-2022-25647
[macOS] fixed issue 1585 where plugin causes a crash when a remote/push notification (e.g. via FCM) occurs
[Android] fixed issue when calling getActiveNotificationMessagingStyle() to get messaging style information for a notification with a tag. Thanks to P
getActiveNotificationMessagingStyle() to get messaging style information for a notification with a tag. Thanks to PR from Simon Ser[Android] added getActiveNotificationMessagingStyle() method to the AndroidFlutterLocalNotificationsPlugin class. This allows for getting the messagin
getActiveNotificationMessagingStyle() method to the AndroidFlutterLocalNotificationsPlugin class. This allows for getting the messaging style information of an active notification e.g. to append a message to an existing notification. Thanks to the PR from Simon SerWhilst this may be technically a breaking change, it's been done as a minor change as the call was already throwing an unhandled exception in these sc…
initialize() on a platform with passing the appropriate initialisation settings for it will now throw an ArgumentError. Whilst this may be technically a breaking change, it's been done as a minor change as the call was already throwing an unhandled exception in these scenarios. This change is to help provide more information on why it fails. Documentation has also been updated to provide more on information on this as the intialisation settings for each platform are nullable so developers aren't forced to provide settings for platforms they don't target. Thanks to the PR from Zlati Pehlivanov[Android] Added tag to ActiveNotification that would allow for finding the notification's tag. Thanks to the PR from Simon Ser
tag to ActiveNotification that would allow for finding the notification's tag. Thanks to the PR from Simon SerNote that in 10.0.0 the method will have a breaking change so that these parameters are non-nullable
requestPermissions() method of the MacOSFlutterLocalNotificationsPlugin class led to a crash. This will be coalesced to assume that the boolean parameters around the requested permissions default to false to be consistent with the iOS implementation. Note that in 10.0.0 the method will have a breaking change so that these parameters are non-nullableFix issue 1485 where the addition of colorized property caused backwards compatibility issues with previously scheduled notifications as this would be
colorized property caused backwards compatibility issues with previously scheduled notifications as this would be null when deserialised from shared preferencesFix issue 1479 that could cause compilation issue on the web by removing dart:ffi import
dart:ffi import[Android] Updated how scheduled notifications are saved to shared preferences so it is done in the background. This is to fix issue 1378 where pending
pendingNotificationRequests method may not report the correct number of scheduled notifications if it is invoked before the data had been saved to shared preferencescolorized property to AndroidNotificationDetails class. This can be used to apply a background colour to the notification but for most styles, this only works if a foreground service was used. Example app has been updated to demonstrate its usage. Thanks to the PR from benechiu[Android] Added areNotificationsEnabled() method to AndroidFlutterLocalNotificationsPlugin. This allows querying if notifications are enabled for the
areNotificationsEnabled() method to AndroidFlutterLocalNotificationsPlugin. This allows querying if notifications are enabled for the app calling the method. Thanks to the PR from Konstantin Pelzinitialize() returning null all the time instead of returning an appropriate boolean value to indicate if plugin has been initialisedBumped flutter_local_notifications_linux dependency
flutter_local_notifications_linux dependency[Android] Reverted change in 9.1.0 that added the groupKey to ActiveNotification as this was a potentially breaking change. This will instead be part…
groupKey to ActiveNotification as this was a potentially breaking change. This will instead be part of a major release[Android] Reverts Android changes done in 9.1.2 and 9.1.1 due to reported stability issues. Ths means issue 1378 may still occur though is a rare occu
BAD [Android] some minor code clean up from 9.1.2 changes
[Android] Fix NPE issue 1378 from change introduced in 9.1.1 in updating how notifications were written to shared preferences
BAD [Android] updated APIs the plugin uses to write to shared preferences in the background
Future for scheduling a notification could be completed prior to saving information on the scheduled notification to shared preferences. In this case the notification would still be scheduled but if the plugin was used to query the pending notifications quick enough, the plugin may have returned the incorrect number of pending notificationsBAD [Android] Added groupKey to ActiveNotification that would allow for finding the notification's group. Thanks to the PR from Roman
[Android] Fixed issue 1362 so that the plugin refer to Android sound resources by the resource name instead of the resource id as the resource id coul
…contains all timezones including those that are deprecated or may link to other timezones
Scheduled Android notifications section. Thanks to Yousef Akiba for the PRtimezone dependency so it uses the all variant of the IANA database that contains all timezones including those that are deprecated or may link to other timezonesFixed issue 1346 where an exception is thrown when onSelectNotification callback isn't specified
onSelectNotification callback isn't specifiedBreaking change the SelectNotificationCallback and DidReceiveLocalNotificationCallback typedefs now map to functions that returns void instead of a Fu…
SelectNotificationCallback and DidReceiveLocalNotificationCallback typedefs now map to functions that returns void instead of a Future<dynamic>. This change was done to better communicate the plugin doesn't actually await any asynchronous computation and is similar to how button pressed callbacks work for Flutter where they are typically use VoidCallbackvalue property of the Importance class is now non-nullableFlutterLocalNotificationsPlugin.private() constructor that was visible for testing purposes has been removed. The plugin now uses the defaultTargetPlatform property from the Flutter framework to determine the platform an application running on. This removes the need for depending on the platform package. To write tests that require a platform-specific implementation of the plugin, the debugDefaultTargetPlatformOverride property can be used to do sodescription property of the AndroidNotificationChannel class and the channelDescription property of the AndroidNotificationDetails class are now named parametersAndroidIcon class is now a generic class i.e. AndroidIcon<T> and it's icon property has been renamed to data. With this change, the type of the icon property that belongs to the Person class has changed from AndroidIcon? to AndroidIcon<Object>?ByteArrayAndroidIcon class that implements the AndroidIcon<T> class. This allows using a byte array to use as the icon for a person in a message style notification. A ByteArrayAndroidIcon.fromBase64String() named constructor is also available that will enable this using a base-64 encoded string. Thanks to the PR from Alexander Petermannclock package for internal logic that relies on geting the current time, such as validating that the date for a scheduled notification is set in the futureNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Added dayOfMonthAndTime and dateAndTime values to the DateTimeComponents enum. These allow for creating monthly and yearly notifications respectively.
dayOfMonthAndTime and dateAndTime values to the DateTimeComponents enum. These allow for creating monthly and yearly notifications respectively. Thanks to the PR from Denis ShakinovUpdated API docs for the initialize() to mention that the getNotificationAppLaunchDetails() method should be used to handle when a notification launch
initialize() to mention that the getNotificationAppLaunchDetails() method should be used to handle when a notification launches an applicationBumped timezone dependency. Thanks to the PR from Xavier H.
timezone dependency. Thanks to the PR from Xavier H.[Android] fixed issue 1263 around an unchecked/unsafe operation warning
[Android] added the startForegroundService() and stopForegroundService() methods to the AndroidFlutterLocalNotificationsPlugin class. This can be used
startForegroundService() and stopForegroundService() methods to the AndroidFlutterLocalNotificationsPlugin class. This can be used to start and stop a foreground service that shows a foreground service respectively. Refer to the API docs for more details on how to use this. The example app has been updated to demonstrate their usage. Thanks to the PR from EPNWBreaking change the AndroidBitmap class is now a generic class i.e. AndroidBitmap . This has resulted in the following changes
AndroidBitmap class is now a generic class i.e. AndroidBitmap<T>. This has resulted in the following changeslargeIcon property that belongs to the AndroidNotificationDetails class has changed from AndroidBitmap to AndroidBitmap<Object>largeIcon and bigPicture properties that belongs to the BigPictureStyleInformation class has changed from AndroidBitmap to AndroidBitmap<Object>ByteArrayAndroidBitmap class that implements the AndroidBitmap<T> class. This allows using a byte array to use as the large icon for a notification or as big picture if the big picture style has been applied. A ByteArrayAndroidBitmap.fromBase64String() named constructor is also available that will enable this using a base-64 encoded string. Thanks to the PR from Alexander PetermannBreaking change Removed support for Linux. This is because adding Linux made use of a plugin that was causing apps targeting the web to fail to build
Nothing published for this version
Nothing published for this version
Nothing published for this version
Breaking change Removed support for Linux. This is because adding Linux made use of a plugin that was causing apps targeting the web to fail to build.…
Added initial support to Linux. Thanks to the PR from Yaroslav Pronin
dart:io's Platform APIsAddressed deprecation warnings that were appearing for Android builds
tag property associated with the AndroidNotificationDetails classAdd link to explanation of the onDidReceiveLocalNotification callback to the initialisation section of the readme
onDidReceiveLocalNotification callback to the initialisation section of the readmetimezone dependencyUpdated example app to use the flutter_native_timezone plugin to get the timezone
Updated readme on how to get the local timezone
Fixed example app to re-add attributes to the Android app's AndroidManifest.xml to allow full-screen intent notifications to work
AndroidManifest.xml to allow full-screen intent notifications to workBreaking change migrated to null safety. Some arguments that were formerly null (e.g. some boolean values) are now non-nullable with a default value t…
Nothing published for this version
Nothing published for this version
Fixed typo in readme around the note relating to version 4.0 of the plugin where onSelectNotification will not be triggered when an app is launched by
onSelectNotification will not be triggered when an app is launched by tapping on a notification.[iOS/macOS] fixed issue where not requesting any permissions (i.e. all the boolean flags were set to false) would still cause a permissions prompt to
[Android] added the getNotificationChannels method to the AndroidFlutterLocalNotificationsPlugin class. This can be used to a get list of all the noti
getNotificationChannels method to the AndroidFlutterLocalNotificationsPlugin class. This can be used to a get list of all the notification channels on devices with Android 8.0 or newer. Thanks to the PR from Shapovalova VeraYour coding agent can read these notes before it upgrades. Set up the MCP server →