Bắt đầu với API Cấp 18 bạn có thể hủy Notifications đăng bởi các ứng dụng khác khác so với của riêng bạn sử dụng NotificationListenerService
, phương pháp này đã thay đổi một chút trong Lollipop, đây là cách để loại bỏ thông báo bao gồm cũng API Lillipop.
Đầu tiên bên trong phương thức onNotificationPosted
bạn lưu trữ tất cả các đối tượng StatusBarNotification
. Sau đó, bạn nên duy trì tham chiếu cập nhật cho các đối tượng đó, xóa chúng nếu thông báo bằng cách nào đó bị loại bỏ theo phương thức onNotificationRemoved
.
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public class NotificationService extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
// Store each StatusBarNotification object
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
// Delete removed StatusBarNotification objects
}
}
Cuối cùng, bạn có thể xóa mọi thông báo bằng phương pháp cancelNotification
.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
cancelNotification(sbn.getPackageName(), sbn.getTag(), sbn.getId());
}
else {
cancelNotification(sbn.getKey());
}
Nguồn
2015-07-05 18:17:50
Để truy cập vào tất cả các thông báo trên thanh thông báo mà bạn cần phải có bạn cần người sử dụng để kích hoạt dịch vụ truy cập cho app.something của bạn như [này] (http://stackoverflow.com/questions/12554448/ android-accessibility-service-detect-notification). Ứng dụng của bạn có hỗ trợ điều này không? – Droidekas
Tôi đoán tôi có thể thêm nó vào ứng dụng của mình và sau đó tôi phải làm gì? –
thì bạn chỉ có thể sử dụng trình thông báo cùng với id để xóa thông báo như đã đề cập [ở đây] (http://stackoverflow.com/questions/2839727/remove-the-notification-icon-from-the-status-bar) và [tại đây] (http://stackoverflow.com/questions/3595232/android-remove-notification-from-notification-bar) – Droidekas