I am using NotificationListenerService
to handle device notifications:
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Log.d(TAG,"onNotificationPosted posted - ID :" + sbn.getId() + "\t"
+ sbn.getNotification().tickerText + "\t" + sbn.getPackageName());
}
The onNotificationPosted()
method is called after the notification has been posted on the device. Is there a way to catch it before it is presented?
I saw that reading notifications can also be achieved using the AccessibilityManager but again it's read after the notification popped.
Is there a way to delay the device notifications pop-ups until some moment?
I know I can delete a notification using the NotificationListenerService
as it come (after it popped to the user) and save it and try to relaunch it later. But I am having issues with the relaunching and again this is happening after the status bar notification is already shown.
At present, using NotificationListenerService
is the only way to be notified of and interact with StatusBarNotifications
. Intercepting and handling the notifications before they even reach the status bar is not allowed, and would represent a rather notable security violation - this is also confirmed here: https://stackoverflow.com/questions/10286087/intercepting-notifications.
If this were possible then an application could in theory block all notifications for all other applications system wide, which would not be a good thing. Furthermore, even with NotificationListenerService
you may only see notifications from other applications, not alter or delete them. Methods to modify/cancel application notifications, namely cancelAllNotifications()
, only serve to alter the notifications generated by the calling application.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With