Client v5: BLE, BLE Hosting, HTTP, Jobs - Linux, MacOS, & Blazor Support! Full AOT, RX on BLE only & MANY other features! Power up!
Local Notifications Releases
5.2.0 - July 6, 2026
Section titled “5.2.0 - July 6, 2026” Feature
Shiny.Notifications.Extensions.AI — new package exposing local notifications as reminder-framed
Microsoft.Extensions.AI tool functions for LLM agents. Opt-in read/write allow-list via AddNotificationAITools(b => b.AddReminders(ReminderAICapabilities.ReadWrite)); generates list_reminders, create_reminder (one-time or daily), and cancel_reminder. AOT-compatible. See AI Tools.5.1.2 - July 1, 2026
Section titled “5.1.2 - July 1, 2026” Fix Android
Scheduled notifications no longer silently fail to fire when exact alarm permission is not granted. On Android 12+ Shiny now falls back to an inexact alarm (which may be slightly delayed by the OS) instead of throwing a
SecurityException when SCHEDULE_EXACT_ALARM/USE_EXACT_ALARM access is unavailable. Request AccessRequestFlags.TimeSensitivity for exact, on-time delivery. Fix Android
Corrected the exact-alarm manifest guidance. Capping
SCHEDULE_EXACT_ALARM with android:maxSdkVersion="32" without also declaring USE_EXACT_ALARM leaves an app with no exact-alarm permission on Android 13+ (API 33+) - the “Alarms & reminders” toggle appears greyed out and unchecked. Most apps should now declare SCHEDULE_EXACT_ALARM uncapped; only genuine alarm/reminder apps use the capped + USE_EXACT_ALARM pairing. Fix Android
Scheduled, repeating, and geofence notifications now appear in
GetPendingNotifications() (and can be cancelled by id). They were being persisted under the wrong entity type, so the pending list always came back empty and Cancel(id)/GetNotification(id) could not find them. Repeating notifications now also persist their recalculated next-fire date after each alarm fires, so they stay in the pending list across occurrences instead of disappearing. Fix Android
Fixed multiple scheduled/repeating notifications colliding on a single alarm. The alarm
PendingIntent now uses the notification id as its request code - previously a shared request code meant a newly scheduled notification overwrote earlier pending alarms, Cancel could cancel the wrong alarm, and a fired alarm could resolve the wrong notification.5.0.1 - June 28, 2026
Section titled “5.0.1 - June 28, 2026” Fix Android
Fixed
IGeofenceManager is not registered exception when using Shiny.Notifications as a standalone package (without Shiny.Locations) - AddNotifications() now registers the geofence services and NotificationGeofenceDelegate needed for geofence-triggered local notifications Fix Android
Fixed
No JsonTypeInfo registered for type 'Shiny.Notifications.Notification' thrown from Send - the base Notification/Channel types are now registered in the source-generated JSON context (the Android notification intent serializes the base Notification). List and array variants of all notification types are registered as well. Fix Windows
Unpackaged apps no longer throw/log an error from
RequestAccess/GetCurrentAccess - ToastNotifier.Setting is unsupported without package identity, so access is now reported as available instead of failing5.0.0 - June 20, 2026
Section titled “5.0.0 - June 20, 2026” Feature
macOS support added - local notifications via
UNUserNotificationCenter Feature
Windows support added - local notifications via
ToastNotificationManager (channels are limited compared to mobile) Feature
Linux support added via new
Shiny.Notifications.Linux package. Delivered through the freedesktop org.freedesktop.Notifications D-Bus service (GNOME, KDE, etc.). Scheduled notifications are tracked in-process only — the host must be running for them to fire, since there is no OS-level scheduler on Linux. Fix Android
Request SCHEDULE_EXACT_ALARM properly via AlarmManager and system settings intent instead of treating it as a runtime permission
4.0.1 - March 26, 2026
Section titled “4.0.1 - March 26, 2026” Fix Android
AndroidX version pins
3.3.0 - March 18, 2024
Section titled “3.3.0 - March 18, 2024”3.2.2 - January 3, 2024
Section titled “3.2.2 - January 3, 2024” Fix ios
Crash tapping local notification on iOS earlier than 16 when accessing FilterCriteria
3.1.2 - November 7, 2023
Section titled “3.1.2 - November 7, 2023” Enhancement Android
Using AndroidNotification, you can now set the android specific Category
3.1.1 - November 1, 2023
Section titled “3.1.1 - November 1, 2023” Fix Android
Listen to activity.OnCreate intents
3.0.0 - September 5, 2023
Section titled “3.0.0 - September 5, 2023” Enhancement Android
Android 13 Support for new POST_NOTIFICATION permissions
Enhancement
OS specific configuration for Android and iOS
Enhancement
Ability to customize actual native notification before it is sent/queued
Enhancement
Improved sound customization via new channel flag - Channel.Sound = ChannelSound.Custom|High|Default|None