我在New Flutter应用程序中安装了Android Alarm Manager插件.我使用插件的示例代码 - 但它在控制台中出错.
请建议如何使android报警管理器插件工作.如何将Dart的android_alarm_manager集成到应用程序中,以便用户在计划中选择的时间到达时会收到警报?
我使用此链接中的代码:https: //github.com/flutter/plugins/tree/master/packages/android_alarm_manager
////// main.dart://///////
import 'dart:isolate';
import 'package:android_alarm_manager/android_alarm_manager.dart';
import 'package:flutter/material.dart';
void printHello() {
final DateTime now = DateTime.now();
final int isolateId = Isolate.current.hashCode;
print("[$now] Hello, world! isolate=${isolateId} function='$printHello'");
}
void main() async {
final int helloAlarmID = 0;
await AndroidAlarmManager.initialize();
runApp(MaterialApp(home: Application()));
await AndroidAlarmManager.periodic(const Duration(minutes: 1), helloAlarmID, printHello);
}
class Application extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(),
);
}
}
///////////////Application.java/////////////////////
package io.flutter.plugins.androidalarmmanagerexample;
import io.flutter.app.FlutterApplication; …Run Code Online (Sandbox Code Playgroud) 介绍
\n我正在运行 flutter v1.17.5 DeviceApps v1.0.10 和 SystemAlertWindow v0.2.2+3 (有意不是最新版本)。我想从在前台运行的系统警报窗口打开我的应用程序,即使应用程序已关闭。
\n我正在使用SystemOverlayWindow插件,该插件是一个 Activity SystemAlertWindowPlugin.java
\n在我的Application.kt中,我注册插件并传递注册表
\npublic class Application: FlutterApplication(), PluginRegistrantCallback {\n\n override fun onCreate() {\n super.onCreate();\n FlutterFirebaseMessagingService.setPluginRegistrant(this);\n SystemAlertWindowPlugin.setPluginRegistrant(this);\n createNotificationChannels();\n FlutterMain.startInitialization(this);\n }\n\n override fun registerWith(registry: PluginRegistry?) {\n if (!registry!!.hasPlugin("io.flutter.plugins.firebasemessaging")) {\n FirebaseMessagingPlugin.registerWith(registry!!.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));\n }\n if (!registry!!.hasPlugin("in.jvapps.system_alert_window")) {\n SystemAlertWindowPlugin.registerWith(registry!!.registrarFor("in.jvapps.system_alert_window"));\n }\n if (!registry!!.hasPlugin("fr.g123k.deviceapps")) {\n DeviceAppsPlugin.registerWith(registry!!.registrarFor("fr.g123k.deviceapps"));\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n我还注册了另一个名为DeviceApps的插件。这是DeviceAppsPlugin DeviceAppsPlugin.java
\n问题
\n简而言之
\n因此,系统覆盖层(在前台运行)调用 > dart 回调 > 调用 DeviceApps 插件的方法 > 发生错误
\n …