Reputation: 1023
I want to remove notifications from another application shown in the notification bar. Is that possible? NotificationManager.cancelAll();
cancels only notifications shown by the calling application, as far as I know.
Why do I want to do this?
I have an application that reads and sends SMS via a webpage, and I want this application to co-exits with existing SMS applications like Handcent SMS. The way I want it to work is that when reading newly received SMS via the webpage, I want to cancel the new SMS notification shown by Handcent SMS because the new SMS is now read. I'm marking the SMS as read, and Handcent SMS recognize it as read once i open up Handcent SMS, but the notification is still there until i click on the actual SMS.
There are two senarios; number 1:
Senario 2:
Is this possible?
Upvotes: 19
Views: 12309
Reputation: 126563
You can cancel your own notifications using NotificationManager.
But you can't cancel other apps' notifications, that is not possible.
Upvotes: 4
Reputation: 721
You can close any notification use NotificationListenerService:
public class NotificationListener extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
cancelNotification(sbn.getKey());
}
}
Your application must have BIND_NOTIFICATION_LISTENER_SERVICE permission. https://developer.android.com/reference/android/service/notification/NotificationListenerService.html
Upvotes: 10
Reputation: 7520
From Android 4.3 onward, you can now cancel notifications from any apps.
You need to register your app as NotificationListenerService
, then call NotificationListenerService.cancelNotification(String pkg, String tag, int id)
to cancel one notification.
Upvotes: 17