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

Android 从其他应用程序的通知栏中删除通知,android,android-notifications,android-notification-bar,Android,Android Notifications,Android Notification Bar,我想从通知栏中显示的另一个应用程序中删除通知。可能吗NotificationManager.cancelAll()仅取消调用应用程序显示的通知 我为什么要这样做 我有一个通过网页阅读和发送短信的应用程序,我希望这个应用程序与现有的短信应用程序(如Handcent SMS)共存。我希望它的工作方式是,当通过网页阅读新收到的短信时,我想取消Handcent短信显示的新短信通知,因为新短信现在已被阅读。我将短信标记为已读,一旦打开Handcent短信,Handcent短信会将其识别为已读,但在我点击实

我想从通知栏中显示的另一个应用程序中删除通知。可能吗<代码>NotificationManager.cancelAll()仅取消调用应用程序显示的通知

我为什么要这样做

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

有两位参议员;第一:

  • android设备接收短信
  • 通过Handcent SMS显示通知
  • 用户在设备上读取SMS
  • Handcent SMS删除通知并将SMS标记为已读
  • 塞纳里奥2号:

  • android设备接收短信
  • 通过Handcent SMS显示通知
  • 用户通过web界面读取SMS
  • 我的应用程序清除Handcent SMS显示的新SMS通知,并将SMS标记为已读

  • 这可能吗?

    您可以使用取消自己的通知。

    但你不能取消其他应用程序的通知,这是不可能的。

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


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

    您可以使用NotificationListenerService关闭任何通知:

    public class NotificationListener extends NotificationListenerService {
    
        @Override
        public void onNotificationPosted(StatusBarNotification sbn) {
          cancelNotification(sbn.getKey());
        }
    }
    
    应用程序必须具有绑定\通知\侦听器\服务权限。

    你为什么要这么做?我当然不希望任何应用窃取我的通知。阿米尔,我告诉过你为什么在“我为什么要这样做?”:)。@johboh你现在可以取消其他应用程序的通知了。请注意,创建NotificationListenerService实例并调用cancelNotification()将导致NullPointerException。您必须扩展NotificationListenerService并启动该服务,然后从该服务中取消通知。我在onNotificationPosted()中运行了它,但它不会取消它。你能看一下吗?请注意,由于棒棒糖,这种方法已被弃用,它的签名已更改,正如@QuadX在下面的答案中所指出的,我有点困惑。谁的答案是正确的?你的,还是“绿洲风”?