Android NotificationListener 取消通知不起作用

Android NotificationListener cancel notification not working

所以我正在使用 NotificationListener 服务来取消来自某些应用程序的某些通知,这样它就不会干扰我的无障碍服务触摸屏幕(当我的应用程序试图点击时,IE facebook 会下拉屏幕顶部)。

但我有一个问题,它没有取消应用程序通知,即使 onNotificationRemoved 显示应该取消它。

@Override
public void onNotificationPosted(StatusBarNotification sbn)
{
    cancelNotification(sbn.getKey());
}

@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
    Log.e("Msg","Notification Removed");
}

我确实查看了我试图取消的其他应用程序的通知权限,发现它们设置为 Urgent: Sound and pop up on screenHigh Priority。这会阻止我取消它们吗?如果是这样,有没有办法以编程方式更改它而无需我的用户做任何事情?

好吧,我要做的就是禁止那些不允许清除的通知。这是我的最终解决方案(尽管这仅适用于 Build.Version O):

 boolean canClear = sbn.isClearable();
 if (canClear){
       cancelNotification(sbn.getKey());
 }else {
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
          snoozeNotification(sbn.getKey(), Long.MAX_VALUE - System.currentTimeMillis());
                    }
                }

到目前为止,我看到的唯一缺点是,除非您重新启动 phone。

,否则无法取消暂停应用程序