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>
已成功按照此插件的示例说明进行操作,但只有第一个调试会话...所以我知道它可以工作。 现在,我没有收到任何错误,但从未触发警报?!?跟踪到插件,那里没有错误。你是我不得已的选择,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>