notification_listener 1.0.0 copy "notification_listener: ^1.0.0" to clipboard
notification_listener: ^1.0.0 copied to clipboard

Flutter Plugin to listen to all incoming notifications (posted or removed) with the possibility to reply to them

notification_listener #

A Flutter plugin to integrate with Android's NotificationListenerService, enabling apps to detect, log, and respond to notifications. This plugin provides a way to listen to new notifications, handle their removal, and reply directly when supported.


Installation and Setup #

  1. Add the plugin dependency in your pubspec.yaml:
dependencies:
  notification_listener: any # Replace 'any' with the latest version.
  1. Add the following service declaration to your AndroidManifest.xml to bind the notification service with your application:
        <service android:label="notifications" android:name="dev.tabhishekpaul.notification_listener.NotificationListener"
                android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" android:exported="true">
            <intent-filter>
                <action android:name="android.service.notification.NotificationListenerService" />
            </intent-filter>
        </service>
  1. Request notification access from the user through Settings:
    • SettingsApps & notificationsSpecial app accessNotification access.

Usage Example #

1. Checking Notification Permission #

Check if the app has notification access:

final bool isGranted = await AndroidNotificationListener.isGranted();
if (isGranted) {
  print('Notification access granted!');
} else {
  print('Notification access denied.');
}

2. Requesting Notification Permission #

Open the notification settings page and wait for the user to grant permission:

final bool granted = await AndroidNotificationListener.request();
if (granted) {
  print('Permission granted!');
}

3. Listening for Notifications #

Stream incoming notification events:

AndroidNotificationListener.accessStream.listen((event) {
  print("Notification from ${event.packageName}: ${event.title}");
});

4. Replying to Notifications #

Send a direct message reply to a notification:

try {
  await event.sendReply("This is an auto-response.");
} catch (e) {
  print('Error sending reply: $e');
}

The ServiceNotificationEvent provides:

  • id: The notification ID.
  • canReply: Whether the notification supports replies.
  • haveExtraPicture: If the notification contains an image.
  • hasRemoved: If the notification has been removed.
  • packageName: The originating app's package name.
  • title: The notification title.
  • content: The main content of the notification.
  • appIcon / extrasPicture / largeIcon: Available images for display.

1
likes
0
points
134
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter Plugin to listen to all incoming notifications (posted or removed) with the possibility to reply to them

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on notification_listener