Android NotificationListener отменить уведомление не работает - PullRequest
0 голосов
/ 14 сентября 2018

Так что я использую сервис 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 screen или также High Priority. Это помешает мне отменить их? Если да, то есть ли способ изменить это программно без необходимости что-либо делать моим пользователям?

1 Ответ

0 голосов
/ 01 октября 2018

Хорошо, так что я должен был подавить уведомления для тех, кому не было разрешено очистить. Это было мое окончательное решение (хотя это работает только для 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());
                    }
                }

Единственный недостаток, который я видел до сих пор, это то, что нет никакого способа отложить приложения, если вы не перезагрузите телефон.

...