Olá boa noite. Espero que estejam bem.
Estou desenvolvendo um app para aprendizado, utilizando os conhecimentos que adquiri com alguns cursos da alura + coisas adicionadas pela documentação e me deparei com um problema.
Neste app, adicionei um agendademento de notificação. A idéia seria que no horário em que a pessoa salvou o lembrete, a notificação fosse exibida.
Porém, quando o horario chega, a notificação não é exibida.
Eu sei que a notificação está funcionando, pois para teste, coloquei um botão para que, quando acionado, disparasse a notificação através do método ".show()" do plugin de notificação. E nesta ação, a notificação é exibida.
Já adicionei as permissões no Android.Manifest, já alterei os canais, ja fiz de tudo, e a bendita notificação não é exibida.
Estou utilizando o pacote "flutter_local_notifications" e minhas dependencias no pubspec.yaml estão dessa forma:
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.8
sqflite: ^2.4.2
flutter_local_notifications: ^20.1.0
timezone: ^0.10.1
flutter_timezone: ^5.0.1
permission_handler: ^12.0.1
android_intent_plus: ^6.0.0
shared_preferences: ^2.5.4
O código para agendamento da notificação é o seguinte:
//Function to schedule a notification
Future<void> scheduleNotification(String? title, String? body, {int id = 1, required int hour, required int minute}) async {
//Get the date and time from device
final dateAndTimeDevice = timeZone.TZDateTime.now(timeZone.local);
//Set the time when notification will be schedule
var notificationSchedule = timeZone.TZDateTime(
timeZone.local,
dateAndTimeDevice.year,
dateAndTimeDevice.month,
dateAndTimeDevice.day,
hour,
minute,
);
//Schedule the notification into the plugin
await notificationPlugin.zonedSchedule(
id: id,
title: title,
body: body,
scheduledDate: notificationSchedule,
notificationDetails: notificationDetails(isScheduled: true),
androidScheduleMode: AndroidScheduleMode.inexactAllowWhileIdle,
matchDateTimeComponents: DateTimeComponents.time,
);
print(
'Notification Scheduled for Notification $title at Date '
'${dateAndTimeDevice.day}/${dateAndTimeDevice.month}/${dateAndTimeDevice.year} time $hour:$minute',
);
}
Alguém já passou por alguma situação parecida, que possa me ajudar?
