从android_alarm_manager调用flutter_local_notification时的问题在运行时给出MissingPluginException

如何解决从android_alarm_manager调用flutter_local_notification时的问题在运行时给出MissingPluginException

我正在尝试实现Flutter应用程序的功能,该功能将通过通知横幅每15分钟提醒用户一些事情。由于此提醒的间隔很长,因此我打算在后台运行后台服务,该后台服务将通过某种警报管理器进行界面连接,该警报管理器将间歇执行该代码显示通知。另外,请注意,提醒的时间间隔不需要精确。

我的实施计划是同时使用两个Flutter软件包(Flutter_local_notificationandroid_alarm_manager)。我不能单独使用Flutter_local_notifications,因为重复通知的间隔限制为一分钟,一小时,一天等等,而我的应用程序必须间隔为15分钟。这样,我就从Flutter_local_notification包中完全删除了调度功能,并将责任交给了android_alarm_manager

我通过为每个包创建单独的类来使用这两个包。 Flutter_local_notifications包的第一类类似于本文中的类:https://itnext.io/local-notifications-in-flutter-6136235e1b51。另一方面,android_alarm_manager的类在notification_alarm_manager.dart中具有以下实现:

class NotificationAlarmManager {

  NotificationAlarmManager() {
    AndroidAlarmManager.initialize();
  }

  //I used interval in seconds here only for testing
  void startNotifications(int intervalInSeconds) async {
    await AndroidAlarmManager.periodic(
      Duration(seconds: intervalInSeconds),_showRepeatingNotification,);
    print('Periodic alarm initialized');
  }

  static void _showRepeatingNotification() async {
    print('Repeating notification will be shown');
    var notification = localnotificationsPlugin();
    await notification.showSingleNotification();
  }
}

此类通过以下实现从main函数实例化:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  var alarmManager = NotificationAlarmManager();
  runApp(CushionSensorApp(alarmManager));
}

触发通知initState()状态的CushionSensorApp函数开始,如下所示:

class _CushionSensorAppState extends State<CushionSensorApp> {
  @override
  void initState() {
    ...
    this.widget.alarmManager.startNotifications(15);
  }
  ...
}

应用程序正确构建,但是每当android_alarm_manager执行_showRepeatingNotification()时,就会重复显示主要错误和其他错误

MissingPluginException(No implementation found for method initialize on channel dexterous.com/Flutter/local_notifications)
...

是的,我已经遵循了android_alarm_manager的所有初始要求(添加权限,接收者)。另外,我已经添加自定义Application.java文件作为替代文件,并将android:name更改为.Application。我什至尝试使用此Github问题https://github.com/MaikuB/flutter_local_notifications/issues/238中的Kotlin文件,但仍然无法正常工作。

有关我的代码https://github.com/lewisbolaton/cushion_sensor_app)的详细信息,请参阅我的存储库。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?