搜索插件、代码仓与 APP 分类

插件详情v1.0.2

flutter_alarm_background_trigger

一个用于 Android 的 Flutter 插件,可在特定时间从后台启动应用,功能类似于 Android 系统自带的闹钟应用。

Android
近 30 天下载
41
喜欢数
44
Pub 分数
140

安装插件

flutter pub add flutter_alarm_background_trigger

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个用于 Android 的 Flutter 插件,可在指定时间从后台启动应用,模拟原生 Android 闹钟应用的行为。它允许开发者在应用关闭或设备处于深度睡眠时安排应用唤醒,非常适合用于闹钟、提醒和定时通知类应用。该插件利用 Android 的 JobScheduler 和 AlarmManager API 来确保可靠执行。不支持 iOS。该包轻量且可无缝集成到现有的 Flutter 项目中。

适合场景

  • 调度警报
  • 实施提醒应用程序
  • 在特定时间触发后台任务
  • 创建基于时间的通知
  • 从睡眠模式启动应用

主要特点

  • 后台应用启动
  • 仅限 Android 支持
  • 使用 JobScheduler 和 AlarmManager
  • 与 Flutter 的简单集成
  • 可靠的时间安排用于计划事件

适合对象

  • 闹钟应用开发者
  • 提醒系统构建器
  • 时间触发的后台处理
  • 面向 Android 的 Flutter 应用
  • 需要精确唤醒调度的应用

使用建议

  • 仅适用于 Android
  • 需要正确的 Android 清单配置
  • 可能受电池优化设置的影响
  • 仅限 Android 平台
  • 需要用户权限以在后台执行

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Flutter background alarm trigger

A flutter plugin for Android to launch app from background at specific time just like stock alarm app in Android

Installation
flutter_alarm_background_trigger: ^1.0.0
# or
flutter pub add flutter_alarm_background_trigger
Initialization
void main() {
  // Very important to call before initialize since it 
  // ensures the binding is available and ready before 
  // any native call
  WidgetsFlutterBinding.ensureInitialized();

  // initialize Required for alarm events to bind with flutter method channel
  FlutterAlarmBackgroundTrigger.initialize();

  runApp(const MyApp());
}

Create instance
var alarmPlugin = FlutterAlarmBackgroundTrigger();
Set Alarm
alarmPlugin.addAlarm(
      // Required
      DateTime.now().add(Duration(seconds: 10)),

      //Optional
      uid: "YOUR_APP_ID_TO_IDENTIFY",
      payload: {"YOUR_EXTRA_DATA":"FOR_ALARM"},

      // screenWakeDuration: For how much time you want 
      // to make screen awake when alarm triggered
      screenWakeDuration: Duration(minutes: 1)
  )
Receive event when alarm trigger
alarmPlugin.requestPermission().then((isGranted){
  if(isGranted){
    alarmPlugin.onForegroundAlarmEventHandler((alarm){
      // Perform your action here such as navigation
      // This event will be triggered on both cases, 
      // when app is in foreground or background!
      print(alarm.id)
    })
  }
})

Additional methods

Request permission to draw over other apps
Future<bool> requestPermission()
Add
Future<AlarmItem> addAlarm(
  DateTime time, 
  {
    String? uid, 
    Map<String, dynamic>? payload, 
    Duration screenWakeDuration
  }
)
Get alarm by uid
Future<List<AlarmItem>> getAlarmByUid(String uid)
Get all scheduled alarms
Future<List<AlarmItem>> getAllAlarms()
Get single alarm
Future<AlarmItem> getAlarm(int id)
Get alarm by payload
Future<List<AlarmItem>> getAlarmByPayload(Map<String, dynamic> payload)
Get alarm by time
Future<List<AlarmItem>> getAlarmByTime(DateTime time)
Alarm trigger event
void onForegroundAlarmEventHandler(OnForegroundAlarmEvent alarmEvent)
Delete single alarm
Future<void> deleteAlarm(int id)
Delete by payload
Future<void> deleteAlarmsByPayload(Map<String, dynamic> payload)
Delete by time
Future<void> deleteAlarmsByTime(DateTime dateTime)
Delete by uid
Future<void> deleteAlarmsByUid(String uid)
Delete all scheduled alarms
Future<void> deleteAllAlarms()

所属分类

依赖

依赖清单 1 项

  • plugin_platform_interface^2.0.2

源码仓库

使用此插件的项目

暂无相关数据。