Возможно ли подавить уведомления в Android?

#android #notifications

#Android #уведомления

Вопрос:

Я хотел бы иметь возможность прослушивать уведомления, отправляемые в строку состояния, и перехватывать и подавлять (временно) эти уведомления.

Я видел AccessabilityEvent.TYPE_NOTIFICATION_STATE_CHANGED, и NotificationListenerService.

Тем не менее, я просто не хочу получать информацию при отображении уведомления, я хочу запретить отображение уведомления.

Я вижу, как это потенциально может представлять угрозу безопасности, поэтому я могу понять, если это невозможно. Возможно ли это? Если да, то как мне это сделать?

Ответ №1:

Я думаю, вы на правильном пути с NotificationListenerService. Google сделал эти API доступными с Android 4.3, поэтому приложение, использующее этот метод, будет доступно только для новых устройств.

В следующем сообщении в блоге вы можете найти пример того, что вы можете сделать с NotificationListenerService: http://weimenglee.blogspot.ch/2014/03/android-tip-notification-listener.html

Основная идея заключается в реализации onNotificationPosted() метода, который дает вам StatusBarNotification экземпляр. Затем вы сможете отменить уведомление с помощью this.cancelNotification(
notif.getPackageName(),
notif.getTag(),
notif.getId());

Смотрите Сообщение в блоге для дальнейшего описания того, что нужно расширить и как реализовать методы.

Надеюсь, это поможет.

Комментарии:

1. Если я отменю уведомление, могу ли я повторно отправить его позже? Будет ли оно отображаться в строке состояния, а затем исчезать или вообще не отображаться?

2. Я никогда не пробовал, но я предполагаю, что это должно быть возможно. Создание уведомления зависит от вашего приложения, Но вы можете сохранить все важные данные (намерения, содержимое и т. Д.) Из объекта StatusBarNotification для последующего использования.