我想从通知栏中显示的其他应用程序中删除通知。那可能吗?据我所知,NotificationManager.cancelAll();
仅取消调用应用程序显示的通知。
为什么我要这样做?
我有一个通过网页读取和发送短信的应用程序,我希望这个应用程序与现有的SMS应用程序如Handcent SMS共同退出。我希望它的工作方式是,当通过网页阅读新收到的短信时,我想取消Handcent SMS显示的新SMS通知,因为现在已经读取了新短信。我正在将短信标记为已读,并且一旦我打开Handcent短信,Handcent SMS就会将其识别为已阅读,但是直到我点击实际的短信,通知仍然存在。
有两种情形; 1号:
Senario 2:
这可能吗?
答案 0 :(得分:15)
从Android 4.3开始,您现在可以取消任何应用的通知。
您需要将应用注册为NotificationListenerService
,然后拨打NotificationListenerService.cancelNotification(String pkg, String tag, int id)
取消一个通知。
答案 1 :(得分:5)
您可以使用NotificationListenerService关闭任何通知:
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
答案 2 :(得分:4)
您可以使用NotificationManager取消自己的通知 但是你无法取消其他应用的通知,这是不可能的。