android_alarm_manager_plus 没有触发回调

android_alarm_manager_plus not triggering callback

已成功按照此插件的示例说明进行操作,但只有第一个调试会话...所以我知道它可以工作。 现在,我没有收到任何错误,但从未触发警报?!?跟踪到插件,那里没有错误。你是我不得已的选择,google没有提供解决方案,我没有头发可以拉...

在我连接的设备上调试: 三星型号 SM-J120W Android 版本 6.0.1

android_alarm_manager_plus 1.0.1

AndroidManifest.xml:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
...
<service
  android:name="io.flutter.plugins.androidalarmmanager.AlarmService"
  android:permission="android.permission.BIND_JOB_SERVICE"
  android:exported="false"/>
<receiver
  android:name="io.flutter.plugins.androidalarmmanager.AlarmBroadcastReceiver"
  android:exported="false"/>
<receiver
  android:name="io.flutter.plugins.androidalarmmanager.RebootBroadcastReceiver"
  android:enabled="false">
  <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED"/>
  </intent-filter>
</receiver>

在main.dart中:

// top level function is never called :-(
void callback() {
  final DateTime now = DateTime.now();
  final int isolateId = Isolate.current.hashCode;
  print("[$now] Hello, world! isolate=$isolateId function='$callback'");
}

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  bool test = await AndroidAlarmManager.initialize();
  print('initialize test = $test'); // **_returns true_**
  ...
}

在我的主页上:

Center(
  child: Switch(
  value: isOn,
  onChanged: (value) {
    setState(() {
      isOn = value;
    });
    if (isOn == true) {
      AndroidAlarmManager.periodic(Duration(seconds: 10), alarmId, **callback**, startAt: DateTime.now(), exact: true, wakeup: true)
          .then((value) => print('Alarm Timer Started = $value')); // **_returns true_**
    } else {
      AndroidAlarmManager.cancel(alarmId).then((value) => print('Alarm Timer Canceled = $value'));
    }
  },
)),

扑博士:

[√] Flutter (Channel stable, 2.2.1, on Microsoft Windows [Version 10.0.19042.985], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Chrome - develop for the web
[√] Android Studio
[√] VS Code (version 1.56.2)
[√] Connected device (3 available)

• No issues found!

有什么遗漏的信息可以提供吗?

感谢您 help/sugestion 提供!

使用以下服务代码更新 AndroidManifest.xml:

<service
    android:name="dev.fluttercommunity.plus.androidalarmmanager.AlarmService"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:exported="false"/>
<receiver
    android:name="dev.fluttercommunity.plus.androidalarmmanager.AlarmBroadcastReceiver"
    android:exported="false"/>
<receiver
    android:name="dev.fluttercommunity.plus.androidalarmmanager.RebootBroadcastReceiver"
    android:enabled="false">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
</receiver>