import 'package:flutter/material.dart'; import 'dart:async'; import 'dart:convert'; import 'package:android_notification_listener2/android_notification_listener2.dart'; void main() => runApp(MyApp()); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { AndroidNotificationListener _notifications; StreamSubscription _subscription; @override void initState() { super.initState(); initPlatformState(); } // Platform messages are asynchronous, so we initialize in an async method. Future initPlatformState() async { startListening(); } void onData(NotificationEventV2 event) { // const _packageToSearch = 'com.nianticproject.ingress'; // const _packageToSearch = 'com.enlnf'; const _packageToSearch = 'org.kman.AquaMail'; print(event); print(event.packageName); if (event.packageName == _packageToSearch) { print('INGRESS Notification'); print('INGRESS Notification'); print('INGRESS Notification'); } print('converting package extra to json'); var jsonDatax = json.decode(event.packageExtra); print(jsonDatax); } void startListening() { _notifications = new AndroidNotificationListener(); try { _subscription = _notifications.notificationStream.listen(onData); } on NotificationExceptionV2 catch (exception) { print(exception); } } void stopListening() { _subscription.cancel(); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text('Plugin example app'), ), ), ); } }