从其他应用程序中删除通知栏的通知

我想从通知栏中显示的另一个应用程序中删除通知。 那可能吗? NotificationManager.cancelAll(); 据我所知,只取消了调用应用程序显示的通知。

我为什么要这样做?

我有一个应用程序,通过网页读取和发送短信,我希望这个应用程序与现有的短信应用程序共同退出,如Handcent SMS。 我希望它的工作方式是,当通过网页阅读新收到的短信时,我想取消由Handcent SMS显示的新短信通知,因为现在读取了新的短信。 我将短信标记为已读,Handcent短信将其识别为只读一次,我打开Handcent短信,但通知仍然存在,直到我点击实际的短信。

有两个senarios; 1号:

  1. Android设备收到短信。
  2. Handcent SMS显示通知。
  3. 用户读取设备上的SMS。
  4. Handcent SMS删除通知并将SMS标记为已读。

Senario 2:

  1. Android设备收到短信。
  2. Handcent SMS显示通知。
  3. 用户通过网页界面阅读短信。
  4. 我的应用程序清除Handcent SMS显示的新SMS通知,并将SMS标记为已读。

这可能吗?

Solutions Collecting From Web of "从其他应用程序中删除通知栏的通知"

从Android 4.3开始,您现在可以取消任何应用程序的通知。

您需要将您的应用程序注册为NotificationListenerService ,然后调用NotificationListenerService.cancelNotification(String pkg, String tag, int id)来取消一个通知。

您可以使用NotificationManager取消自己的通知。
但是你不能取消其他应用程序的通知,这是不可能的。

您可以使用NotificationListenerServiceclosures任何通知:

 public class NotificationListener extends NotificationListenerService { @Override public void onNotificationPosted(StatusBarNotification sbn) { cancelNotification(sbn.getKey()); } } 

您的应用程序必须具有BIND_NOTIFICATION_LISTENER_SERVICE权限。 https://developer.android.com/reference/android/service/notification/NotificationListenerService.html