I am trying to use the flutter local notifications package and followed the documentation but having some issues on showcasing the notification on my flutter app.
I also tried to add this github code to my project as an alternative with no luck – https://github.com/vijayinyoutube/schedule_notification_app_demo/blob/master/lib/main.dart
[https://github.com/vijayinyoutube/schedule_notification_app_demo/blob/master/lib/home_page.dart]
homepage.dart –
void main() async {
WidgetsFlutterBinding.ensureInitialized();
tz.initializeTimeZones();
runApp(MyApp(currentpage: 'All'));
openMyDatabase();
}
onPressed: () {
WidgetsFlutterBinding.ensureInitialized();
var reminder = NotificationsReminder();
reminder.scheduleNotification();
}
notificationsreminder.dart –
class NotificationsReminder {
late FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;
NotificationsReminder() {
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
var initializationSettingsAndroid =
const AndroidInitializationSettings('@mipmap/ic_launcher');
var initializationSettings =
InitializationSettings(android: initializationSettingsAndroid);
flutterLocalNotificationsPlugin.initialize(initializationSettings);
_createNotificationChannel();
_requestIOSPermissions();
}
Future<void> _createNotificationChannel() async {
var details = const AndroidNotificationChannel(
'your_channel_id',
'your_channel_name',
description: 'your channel description',
importance: Importance.max,
);
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(details);
Future<void> scheduleNotification() async {
print('Scheduled notification for 5 seconds later');
await flutterLocalNotificationsPlugin.zonedSchedule(
0,
'Scheduled Notification',
'This notification was scheduled to appear after 5 seconds.',
tz.TZDateTime.now(tz.local).add(const Duration(seconds: 5)),
const NotificationDetails(
android: AndroidNotificationDetails(
'your_channel_id', 'your_channel_name',
channelDescription: 'your channel description',
importance: Importance.max,
priority: Priority.high,
showWhen: false),
),
androidScheduleMode: AndroidScheduleMode.exactAllowWhileIdle,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime);
}
}
AndroidManifest.xml –
<receiver android:exported="false" android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationReceiver" />
<receiver android:exported="false" android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver">
<receiver android:exported="false" android:name="com.dexterous.flutterlocalnotifications.ActionBroadcastReceiver" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />