如何在 flutter 中使用 alarm_manager 启动类似 Google 的闹钟应用程序?

How to launch app like Google's alarm app using alarm_manager in flutter?

我正在使用 android alarm manager in flutter 制作闹钟应用。

通过使用 this hack,闹钟正常工作。 但是有一个问题,当在背景上触发警报时,某些设备不会启动我的应用程序。

例如,当设置闹钟并点击主页按钮时,只是调用了callback函数,应用程序还没有启动。

使用Samsung s8,当警报响起时启动应用程序。 但是模拟器 sdk_gphone_x86_armSamsung s10 不会启动应用程序。

我想制作google的闹钟应用,但有些设备无法启动应用。有什么问题?

终于,我用了几天的时间找到了解决办法!!

原因:

Android 10.0(Q) 防止在后台启动 Active。您可以查看文档 here.

解决方案:

  1. 在清单中添加这个 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  2. 在你的 flutter 应用程序中允许权限
    (路线:Setting -> Apps & notifications -> 你的 flutter 应用程序 -> Advanced -> Display over other apps

参考:

cannot start activity background in android 10, android Q