Tambahkan Dependency
Tambahkan dependency flutter_local_notifications: ^17.2.2
dependencies:
flutter:
sdk: flutter
flutter_local_notifications: ^17.2.2
Setelah itu, jalankan perintah berikut di terminal:
flutter pub get
- Android Setup Gradle
Untuk mendukung penjadwalan notifikasi dengan kompatibilitas mundur pada versi Android yang lebih lama, plugin flutter_local_notifications
versi 10+ menggunakan desugaring. Anda perlu memperbarui file Gradle aplikasi Anda (android/app/build.gradle
) dengan menambahkan konfigurasi berikut:
`android {
defaultConfig {
multiDexEnabled true
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
}`
- Konfigurasi AndroidManifest.xml
Untuk mendukung penjadwalan notifikasi, tambahkan izin berikut di dalam tag <manifest>
:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
Jika aplikasi Anda memerlukan penjadwalan notifikasi dengan waktu yang tepat (exact alarms), tambahkan salah satu dari izin berikut tergantung pada kebutuhan Anda:
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
Untuk menampilkan notifikasi berlayar penuh (full-screen intent notifications), tambahkan izin berikut:
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
Tambahkan juga receiver yang diperlukan dalam tag <application>
untuk mendukung penjadwalan notifikasi dan aksi notifikasi:
<receiver android:exported="false" android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationReceiver" />
<receiver android:exported="false" android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
<receiver android:exported="false" android:name="com.dexterous.flutterlocalnotifications.ActionBroadcastReceiver" />