如何解决从android_alarm_manager调用flutter_local_notification时的问题在运行时给出MissingPluginException
我正在尝试实现Flutter应用程序的功能,该功能将通过通知横幅每15分钟提醒用户一些事情。由于此提醒的间隔很长,因此我打算在后台运行后台服务,该后台服务将通过某种警报管理器进行界面连接,该警报管理器将间歇执行该代码以显示通知。另外,请注意,提醒的时间间隔不需要精确。
我的实施计划是同时使用两个Flutter软件包(Flutter_local_notification
和android_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 举报,一经查实,本站将立刻删除。