我想從狀態欄中刪除所有可取消的通知。我知道如何刪除我的應用程序通知我以前看過這個post,但我想刪除其他應用程序的通知。刪除通知欄中的所有通知
有在所有Android版本的通知一個「清除」按鈕清除其使用該標誌的所有通知:Notification.FLAG_AUTO_CANCEL
這意味着它有可能取消所有通知。但我還沒有找到任何有關如何做到這一點的文件。有沒有人指導我如何做到這一點?
感謝
我想從狀態欄中刪除所有可取消的通知。我知道如何刪除我的應用程序通知我以前看過這個post,但我想刪除其他應用程序的通知。刪除通知欄中的所有通知
有在所有Android版本的通知一個「清除」按鈕清除其使用該標誌的所有通知:Notification.FLAG_AUTO_CANCEL
這意味着它有可能取消所有通知。但我還沒有找到任何有關如何做到這一點的文件。有沒有人指導我如何做到這一點?
感謝
與API等級18,你可以取消發佈使用NotificationListenerService
比你自己不同的其它應用的通知開始,法棒棒糖變化不大,這裏是刪除通知還覆蓋Lillipop API的方式。
首先在onNotificationPosted
方法裏面存儲所有的StatusBarNotification
對象。 然後,您應該維護對這些對象的更新引用,如果通知以某種方式在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
}
}
最後,您可以使用cancelNotification
方法刪除任何通知。
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
cancelNotification(sbn.getPackageName(), sbn.getTag(), sbn.getId());
}
else {
cancelNotification(sbn.getKey());
}
官方文檔:http://developer.android.com/reference/android/service/notification /NotificationListenerService.html#cancelNotification(java.lang.String) 瞭解該調用的侷限性會很有趣。是否允許取消所有類型的通知(例如OnGoing通知)? – 2016-03-17 22:44:23
爲了訪問所有通知中的通知欄,你需要有你需要的用戶啓用無障礙服務,爲您app.something像[這裏](http://stackoverflow.com/questions/12554448/ android-accessibility-service-detect-notification)。你的應用程序支持這個嗎? – Droidekas 2015-02-23 06:10:30
我想我可以添加到我的應用程序,然後我該怎麼辦? – 2015-02-23 06:19:36
然後你可以使用通知管理器和id來刪除通知,如[這裏]提到的(http://stackoverflow.com/questions/2839727/remove-the-notification-icon-from-the-status-bar)和[這裏](http://stackoverflow.com/questions/3595232/android-remove-notification-from-notification-bar) – Droidekas 2015-02-23 06:32:33