Android NotificationListener取消通知不起作用

时间:2018-09-13 22:53:58

标签: android notifications notification-listener

因此,我正在使用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。这会阻止我取消它们吗?如果是这样,是否有一种方法可以通过编程方式更改而无需我的用户做任何事情?

1 个答案:

答案 0 :(得分:0)

好的,所以我要做的就是禁止那些不允许清除的通知。这是我的最终解决方案(尽管这仅适用于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());
                    }
                }

到目前为止,我唯一看到的缺点是,除非重新启动手机,否则就无法取消对应用程序的暂停。