从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.JdbcOdbc...