選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 

72 行
1.7 KiB

  1. import 'package:flutter/material.dart';
  2. import 'dart:async';
  3. import 'dart:convert';
  4. import 'package:android_notification_listener2/android_notification_listener2.dart';
  5. void main() => runApp(MyApp());
  6. class MyApp extends StatefulWidget {
  7. @override
  8. _MyAppState createState() => _MyAppState();
  9. }
  10. class _MyAppState extends State<MyApp> {
  11. AndroidNotificationListener _notifications;
  12. StreamSubscription<NotificationEventV2> _subscription;
  13. @override
  14. void initState() {
  15. super.initState();
  16. initPlatformState();
  17. }
  18. // Platform messages are asynchronous, so we initialize in an async method.
  19. Future<void> initPlatformState() async {
  20. startListening();
  21. }
  22. void onData(NotificationEventV2 event) {
  23. // const _packageToSearch = 'com.nianticproject.ingress';
  24. // const _packageToSearch = 'com.enlnf';
  25. const _packageToSearch = 'org.kman.AquaMail';
  26. print(event);
  27. print(event.packageName);
  28. if (event.packageName == _packageToSearch) {
  29. print('INGRESS Notification');
  30. print('INGRESS Notification');
  31. print('INGRESS Notification');
  32. }
  33. print('converting package extra to json');
  34. var jsonDatax = json.decode(event.packageExtra);
  35. print(jsonDatax);
  36. }
  37. void startListening() {
  38. _notifications = new AndroidNotificationListener();
  39. try {
  40. _subscription = _notifications.notificationStream.listen(onData);
  41. } on NotificationExceptionV2 catch (exception) {
  42. print(exception);
  43. }
  44. }
  45. void stopListening() {
  46. _subscription.cancel();
  47. }
  48. @override
  49. Widget build(BuildContext context) {
  50. return MaterialApp(
  51. home: Scaffold(
  52. appBar: AppBar(
  53. title: const Text('Plugin example app'),
  54. ),
  55. ),
  56. );
  57. }
  58. }