diff --git a/packages/android_alarm_manager_plus/CHANGELOG.md b/packages/android_alarm_manager_plus/CHANGELOG.md index 7fc79512c9..62b5336b73 100644 --- a/packages/android_alarm_manager_plus/CHANGELOG.md +++ b/packages/android_alarm_manager_plus/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.3.1 + +- Fix `PendingIntent`s for Android 12+ + ## 1.3.0 - migrate integration_test to flutter sdk diff --git a/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java b/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java index 72d07b3a3d..3086300965 100644 --- a/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java +++ b/packages/android_alarm_manager_plus/android/src/main/java/dev/fluttercommunity/plus/androidalarmmanager/AlarmService.java @@ -132,7 +132,12 @@ private static void scheduleAlarm( alarm.putExtra("id", requestCode); alarm.putExtra("callbackHandle", callbackHandle); PendingIntent pendingIntent = - PendingIntent.getBroadcast(context, requestCode, alarm, PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent.getBroadcast( + context, + requestCode, + alarm, + (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) + | PendingIntent.FLAG_UPDATE_CURRENT); // Use the appropriate clock. int clock = AlarmManager.RTC; @@ -216,7 +221,12 @@ public static void cancel(Context context, int requestCode) { // Cancel the alarm with the system alarm service. Intent alarm = new Intent(context, AlarmBroadcastReceiver.class); PendingIntent existingIntent = - PendingIntent.getBroadcast(context, requestCode, alarm, PendingIntent.FLAG_NO_CREATE); + PendingIntent.getBroadcast( + context, + requestCode, + alarm, + (Build.VERSION >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0) + | PendingIntent.FLAG_NO_CREATE); if (existingIntent == null) { Log.i(TAG, "cancel: broadcast receiver not found"); return; diff --git a/packages/android_alarm_manager_plus/pubspec.yaml b/packages/android_alarm_manager_plus/pubspec.yaml index a41af2fb91..33922d7db2 100644 --- a/packages/android_alarm_manager_plus/pubspec.yaml +++ b/packages/android_alarm_manager_plus/pubspec.yaml @@ -1,7 +1,7 @@ name: android_alarm_manager_plus description: Flutter plugin for accessing the Android AlarmManager service, and running Dart code in the background when alarms fire. -version: 1.3.0 +version: 1.3.1 homepage: https://plus.fluttercommunity.dev/ repository: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/