【发布时间】:2021-08-18 17:07:28
【问题描述】:
成功地遵循了这个插件的示例说明,但只有第一个调试会话......所以我知道它可以工作。 现在,我没有收到任何错误,但从未触发警报?!?追踪到插件,那里没有错误。你是我最后的手段,谷歌没有提供解决方案,我没有任何头发可以拉......
在我连接的设备上调试: 三星型号 SM-J120W 安卓版本 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!
我可以提供任何遗漏的信息吗?
感谢您提供的任何帮助/建议!
【问题讨论】:
-
第一次会话是什么意思?它只会触发一次,永远不会再次触发,对吗?
-
不,这意味着它仅在我第一次调试此代码时才起作用……三天前!奇怪!
-
只需尝试从手机上卸载您的应用,然后再次执行
flutter clean构建。因为我只是运行他们的示例并且它工作正常。 -
再次运行他们的示例,现在给我错误... E/flutter (6675): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:MissingPluginException(没有实现在通道 plugins.flutter.io/shared_preferences 上找到方法 getAll) E/flutter(6675):此示例使用较旧的插件版本。如果我“升级”我会收到大量错误... :-(
-
您是否尝试过克隆他们的存储库示例?尝试克隆并运行他们的示例。
标签: flutter flutter-plugin flutter-packages