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

我想从通知栏中显示的另一个应用程序中删除通知。 那可能吗? 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标记为已读。

这可能吗?

  • 如何检查我的应用程序是否被允许显示通知
  • 在Android通知中加载来自url的图片
  • 无法在频道“null”上发布通知目标Api为26
  • 如何在android中显示多个通知
  • 收听传入的Whatsapp消息/通知
  • 如何在重新启动后创建持久警报
  • 使用vector绘图时,通知会引发错误
  • 未触发Android通知操作(PendingIntent)
  • 从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